В ядре Linux обнаружена уязвимость, позволяющая получить root-доступ произвольному пользователю. Проблему усложняет то, что ошибка существовала на протяжении последних 2-3 лет и существует во всех ядрах начиная с 2.6.37 и включая 3.8.10.
Проблема присутствует в коде PERF_EVENTS, которая должна быть активирована для успешной эксплуатации уязвимости. Пользователям RHEL 6 и CentOS, несмотря на использование ядра 2.6.32, также светят проблемы – проблемный код был успешно бэкпортирван Red Hat в пакет с ядром, поставляемом в RHEL.
Эксплоит уже доступен публично:
bash-4.1# gcc -O2 exploit.c bash-4.1# chmod 777 a.out bash-4.1# su nobody -s /bin/bash bash-4.1$ id uid=99(nobody) gid=99(nobody) groups=99(nobody) bash-4.1$ cd / bash-4.1$ ls a.out bin boot dev etc exploit.c home lib lib64 media.... bash-4.1$ ./a.out 2.6.37-3.x x86_64 sh-4.1# id uid=0(root) gid=0(root) groups=0(root),99(nobody)
Источник: http://www.opennet.ru/opennews/art.shtml?num=36933
UPDATE от 2013-05-15
А вот и небольшой workaround подоспел (правда, есть подозрение, что помогает оно только конкретно от этого эксплойта, а сам баг в ядре можно и по-другому проэксплуатировать):
[root@serv ~]# /sbin/sysctl -w kernel.perf_event_paranoid=2 kernel.perf_event_paranoid = 2 [root@serv ~]# /sbin/sysctl -w kernel.perf_event_max_sample_rate=-1 kernel.perf_event_max_sample_rate = -1 [root@serv ~]# exit [avz@serv ~]$ ./a.out exploit: semtex.c:51: sheep: Assertion `!close(fd)' failed. Aborted [avz@serv ~]$
Кстати, быстро определить какие известные баги есть в вашем ядре можно с помощью такого one-liner-а:
(uname -s; uname -m; uname -r; uname -v) | curl https://uptrack.api.ksplice.com/api/1/update-list/ -L -H "Accept: text/text" --data-binary @-
0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.
You must be logged in to post a comment.