LINUX.ORG.RU

В ядре Linux обнаружена локальная root-уязвимость

 , , ,


2

5

В ядре 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

Перемещено beastie из talks

★★★★★

Последнее исправление: kerneliq (всего исправлений: 3)

проблемный код был успешно бэкпортирван Red Hat в пакет с ядром, поставляемом в RHEL

Успех.

bhfq ★★★★★
()

DISTRIB_DESCRIPTION=«Ubuntu 12.04.2 LTS» Linux host 3.5.0-18-generic #29-Ubuntu SMP Wed Oct 24 19:51:55 UTC 2012 i686 athlon i386 GNU/Linux

$./a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов (сделан дамп памяти)
$ id
uid=65534(nobody) gid=65534(nogroup) группы=65534(nogroup)
В этой дурацкой убунте ничего не работает

kilolife ★★★★★
()
Ответ на: комментарий от router
% uname -a
Linux archous 3.9.2-1-ARCH #1 SMP PREEMPT Sat May 11 20:31:08 CEST 2013 x86_64 GNU/Linux
% ./a.out
a.out: wat.c:51: sheep: Assertion `!close(fd)' failed.
[1]    5064 abort (core dumped)  /home/py/a.out
derlafff ★★★★★
()
Ответ на: комментарий от router

Ubuntu 12.10

fantom@buldozer:~/devel/test$ uname -a
Linux buldozer 3.5.0-27-generic #46-Ubuntu SMP Mon Mar 25 19:58:17 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
fantom@buldozer:~/devel/test$ gcc -O2 ./kernel_exploit.c 
fantom@buldozer:~/devel/test$ ./a.out 
Killed
fantom@buldozer:~/devel/test$ 

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
artifth@whiteblade ~/src » arch
x86_64
artifth@whiteblade ~/src » whoami
artifth
artifth@whiteblade ~/src » ./semtex
semtex: semtex.c:51: sheep: Assertion `!close(fd)' failed.
[1]    2627 abort (core dumped)  ./semtex
artifth@whiteblade ~/src » whoami
artifth

В этой вашей убунте даже эксплоиты не работают.

Artificial_Thought ★★★★
()

Gentoo!

uguest@localhost /tmp $ gcc semtex.c
semtex.c: В функции «fuck»:
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]
uguest@localhost /tmp $ ./a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов
uguest@localhost /tmp $ uname -a
Linux localhost 3.8.4-gentoo #3 SMP Tue Mar 26 23:13:03 GMT 2013 i686 Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz GenuineIntel GNU/Linux
uguest@localhost /tmp $ id
uid=999(uguest) gid=999(uguest) группы=999(uguest),7(lp),10(wheel),100(users),106(lpadmin),442(vboxusers),996(bluez)

P.S. принимаюся патчи >|<

Atlant ★★★★★
()
Ответ на: комментарий от pekmop1024
vadim@aquila:~$ uname -a
Linux aquila 3.8.0 #7 SMP PREEMPT Thu Apr 11 21:50:40 UTC 2013 i686 GNU/Linux

Блин, пришло время запустить pacman -Syu. pacman -Syu сам не запустится.

geekless ★★
()

что-то у меня было предчувствие последние дни, что какую нибудь уязвимость в ведре найдут скоро :)

Harald ★★★★★
()
Ответ на: комментарий от Harald

что-то у меня было предчувствие последние дни, что какую нибудь уязвимость в ведре найдут скоро :)

Ты это... Ты главное конец света не предчувствуй, ладно?

geekless ★★
()
┌[lord] [home-hell-machine]:~ 
└>gcc -O2 root_expl.c 

┌[lord] [home-hell-machine]:~ 
└>chmod +x a.out 

┌[lord] [home-hell-machine]:~ 
└>./a.out 
Killed

┌[lord] [home-hell-machine]:~ 
└>uname -a
Linux home-hell-machine 3.2.0-41-generic #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

┌[lord] [home-hell-machine]:~ 
└>id
uid=1000(lord) gid=1000(lord) groups=1000(lord),115(vboxusers)

:(

Spirit_of_Stallman ★★★
()

есть ощущение, что исходник подпорчен до нерабочего состояния, чтобы школота не баловалась.

у кого-нибудь хоть получилось заюзать?

Deleted
()
┌[lord] [work-hell-machine] [ssh]:~ 
└>gcc -O2 root_expl.c 

┌[lord] [work-hell-machine] [ssh]:~ 
└>chmod +x a.out 

┌[lord] [work-hell-machine] [ssh]:~ 
└>./a.out 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
root@work-hell-machine:~# logout

┌[lord] [work-hell-machine] [ssh]:~ 
└>uname -a
Linux work-hell-machine 3.7.5-pf #11 SMP Wed Feb 13 10:42:13 UTC 2013 x86_64 GNU/Linux

┌[lord] [work-hell-machine] [ssh]:~ 
└>id
uid=1000(lord) gid=1000(lord) groups=1000(lord),111(fuse)

:)
debian 6

Spirit_of_Stallman ★★★
()
Последнее исправление: Spirit_of_Stallman (всего исправлений: 1)

Ubuntu 12.04.2 LTS

3.2.0-41-generic #66-Ubuntu SMP Thu Apr 25 03:27:11 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

Kernel panic

aspel
()
Последнее исправление: aspel (всего исправлений: 1)
┌[lord] [dubhe] [ssh]:~ 
└>gcc -O2 root_expl.c 

┌[lord] [dubhe] [ssh]:~ 
└>chmod +x a.out 

┌[lord] [dubhe] [ssh]:~ 
└>./a.out

┌[root] [dubhe] [ssh]:~ 
└>logout
Bye, my master

┌[lord] [dubhe] [ssh]:~ 
└>uname -a
Linux dubhe 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux

┌[lord] [dubhe] [ssh]:~ 
└>id
uid=1000(lord) gid=1000(lord) groups=1000(lord),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev)

:)
debian 7

Spirit_of_Stallman ★★★
()
Последнее исправление: Spirit_of_Stallman (всего исправлений: 1)

что за фигня, gcc рождает простыню больше чем сам исходник при попытке компиляции.

Novell-ch ★★★★★
()
Ответ на: комментарий от Spirit_of_Stallman

Что-то я не понял где ты пытался привилегии повысить. В любом случае, в debian 7 оно, похоже, работает. Но нестабильно.

router ★★★★★
()

вангую толпу людей не в теме с выкриками «опять в линуксе вирусы не работают и надо компилять самостоятельно»

xtraeft ★★☆☆
()
Ответ на: комментарий от tazhate

Вешает напрочь ведро в генте с 3.8.7 и убунтой 12.10 3.5.0.

Запускал в виртуалке. Когда virsh destroy задумался на 5 секунд, мне как-то поплохело :)

router ★★★★★
()
Ответ на: комментарий от router

Что-то я не понял где ты пытался привилегии повысить.

Тоесть где?
Если ты за правку, то кусок дописал, ибо у меня при логине с моим bashrc я выполняю clean.

В любом случае, в debian 7 оно, похоже, работает. Но нестабильно.

3 раза перекомпилил - 3 раза выполнило.

Spirit_of_Stallman ★★★
()
Ответ на: комментарий от router

У меня тоже с первого раза не взлетело

Задействуем тяжёлую артиллерию :)

while true; do ./a.out; done;

fornlr ★★★★★
()
Ответ на: комментарий от tazhate

Вешает напрочь ведро в генте с 3.8.7 и убунтой 12.10 3.5.0.

*Шутка про скрипт, вызывающий BSOD в венде*

Andrew ★★★
()
Ответ на: комментарий от router

Когда virsh destroy задумался на 5 секунд, мне как-то поплохело :)

Ггг :)

tazhate ★★★★★
()
Ответ на: комментарий от Novell-ch

дададада! та же хрень случилась. даже нормальную ссылку на эксплоит дать не могут%)

der_looser ★★
()

У меня сработало. Что примечательно, только при -O2 у gcc.

Debian 7 x86_64

Adonai ★★★
()
Ответ на: комментарий от xtraeft

уже несколько лет хочу увидеть работоспособный эксплойт под линукс, пока, всё что есть - это всякого рода руткиты. даже грустно.

wakuwaku ★★★★
()

Debian:
Сработало на

Linux miner2 3.2.0-4-amd64 #1 SMP Debian 3.2.39-2 x86_64 GNU/Linux
Linux elitebook 3.8-trunk-amd64 #1 SMP Debian 3.8.5-1~experimental.1 x86_64 GNU/Linux

Не сработало на самосборных 3.7.1 и 3.8.11

YAR ★★★★★
()

Слоупоки с ядрами =< 3.8.10 (хотя последнее стабильное в ветке 3.8 это таки 3.8.13 не говоря о 3.9.2…) обречены! Ура!

init_6 ★★★★★
()
Ответ на: комментарий от wakuwaku

уже несколько лет хочу увидеть работоспособный эксплойт под линукс

А ты будь внимательнее. Время от времени они появляются, к счастью обновления выходят быстро

пока, всё что есть - это всякого рода руткиты. даже грустно.

«Мне бы ваши заботы, мариванна». Как раз руткит это гораздо хуже.

router ★★★★★
()

3.8.8 уже не вешается намертво, >=3.8.10 уже не работает. почему там написано про 3.8.10 не пойму, в оригинале ”This has been fixed in 3.8.10.”

wakuwaku ★★★★
()
Ответ на: комментарий от router

Конечно хуже, это очевидно. Но чтобы их впихнуть очень желательны права рута.

wakuwaku ★★★★
()
Ответ на: комментарий от wakuwaku

нет никаких специальных ядер.
в паблик обычно выкладывают пруф-оф-концепт код, который почти никогда не будет работать на всех возможных конфигурациях

xtraeft ★★☆☆
()
krab@linux-gful:~> ./a.out 
Killed
krab@linux-gful:~> sudo mv a.out /
root's password:
krab@linux-gful:~> cd /
krab@linux-gful:/> ./a.out 
Killed
krab@linux-gful:/> uname -a
Linux linux-gful.site 3.7.10-1.4-desktop #1 SMP PREEMPT Fri Apr 19 12:06:34 UTC 2013 (8ef74f8) x86_64 x86_64 x86_64 GNU/Linux
bhfq ★★★★★
()

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

ошибка существовала на протяжении последних 2-3 лет и существует во всех ядрах начиная с 2.6.37 и включая 3.8.10.

ba_dum_tss.jpeg

Umberto ★☆
()

ОПЯТЬ ПОЛОМАЛИ????

[nobody@machine /]$ uname -a
Linux machine 3.8.11-1-ARCH #1 SMP PREEMPT Thu May 2 17:52:13 CEST 2013 i686 GNU/Linux
[nobody@machine /]$ ./a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.
Аварийный останов (core dumped)
[nobody@machine /]$ 
int13h ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.