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

В ядре Linux найдена опасная уязвимость, позволяющая локальному злоумышленнику выполнить код с правами пользователя root. Проблема наблюдается начиная с ядра 2.6.39. На данный момент уже опубликовано три рабочих эксплоита. Уязвимости присвоен номер CVE-2012-0056.

Источником уязвимости является ошибка в реализации proc-интерфейса для прямого доступа к памяти процесса (/proc/pid/mem). В ядре 2.6.39 защита против неавторизованного доступа к этому файлу была признана неэффективной, поэтому "#ifdef" для зашиты от записи в случайные области памяти был убран, вместо этого была добавлена проверка правильных разрешений на доступ. Как оказалась, проверка привилегий была выполнена некорректно, что позволяет локальному пользователю получить права суперпользователя в ядрах 2.6.39 и выше (исключая GIT snapshot, в котором данная уязвимость была на днях закрыта).

На данный момент ни один из дистрибутивов данную ошибку не закрыл. Обновления для Red Hat и Ubuntu планировалось выпустить завтра, но в ситуации появления эксплоита в публичном доступе, процесс выпуска обновлений будет форсирован и скорее всего они выйдут уже сегодня. В число уязвимых попадают относительно недавно выпущенные дистрибутивы, поставляемые с ядрами 2.6.39, 3.0, 3.1  и 3.2 - Fedora 16, Ubuntu 11.10, OpenSUSE 12.1, Arch Linux, Gentoo и т.п. Статус выпуска обновлений для различных дистрибутивов можно проследить на данных страницах:  Ubuntu, Gentoo, openSUSE, Fedora и Debian.

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

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

2

Вот он пример почему не всегда самые свежие ядра надо ставить. 38 - ядро оптимальный выбор сейчас.
Хотя сам на 3.2 уже.  smile

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

3 (23.01.2012 17:20:31 отредактировано Vadimsky)

Я правильно понял, что вёдер старше 2.6.39 это не касается?
А то у меня на нескольких сервантах ещё старые крутятся.
Вот вам и важность обновлений ядра.    ac
newzenon,  вот и я о том же.

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

4

Vadimsky пишет:

А то у меня на нескольких сервантах ещё старые крутятся.

В ядре Linux найдена опасная уязвимость, позволяющая локальному злоумышленнику

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

5

Vadimsky пишет:

Я правильно понял, что вёдер старше 2.6.39 это не касается?

с точностью до наоборот: вёдер младше .39 не касается...

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

6

Fat-Zer, старше по возрасту, младше — по версии  wink

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

7 (23.01.2012 17:47:04 отредактировано Vadimsky)

Lupo Alberto, спасибо, именно это я и имел виду.
А кстати, чего моё первое сообщениие копировать? У меня у пользователей нету локального командного интерпритатора.
Хотя меня конечно это ни сколько не оправдывает bx

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

8

у мну не работает,  ac

 Консоль:

mike@Gramozeka:~/ex$ gcc mempodipper.c
mike@Gramozeka:~/ex$ whoami
mike
mike@Gramozeka:~/ex$ ./a.out
===============================
=          Mempodipper        =
=           by zx2c4          =
=         Jan 21, 2012        =
===============================

[+] Opening socketpair.
[+] Waiting for transferred fd in parent.
[+] Executing child from child fork.
[+] Opening parent mem /proc/9077/mem in child.
[+] Sending fd 5 to parent.
[+] Received fd at 5.
[+] Assigning fd 5 to stderr.
[+] Reading su for exit@plt.
[-] Could not resolve /bin/su. Specify the exit@plt function address manually.
[-] Usage: ./a.out -o ADDRESS
[-] Example: ./a.out -o 0x402178
mike@Gramozeka:~/ex$ whoami
mike
mike@Gramozeka:~/ex$


но тем не менее ...

" si contuderis stultum in pila quasi tisanas feriente desuper pilo non auferetur ab eo stultitia eius " © Proverbs 27:22

9

gramozeka пишет:

у мну не работает,

для данного эксплойта /bin/su должен быть доступен на чтение...

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

10

гы.. у меня тоже не работает - нет ядер старше 38.  :lol:
кстати, а зачем они?

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

11

Интересно, а кто ещё попробует?

Истина ускользает от тех кто отказывается её видеть обоими глазами.
Талантам нужно помогать, бездарности пробьются сами.
В Туле настолько суровые парни, что вместо пены для бритья, используют пену монтажную.
cat /broken/hands > /dev/null

12

От жеж ....  :O

 Консоль:
john@ztux ~ $ gcc mempodipper.c
john@ztux ~ $ whoami
john
john@ztux ~ $ ./a.out
===============================
=          Mempodipper        =
=           by zx2c4          =
=         Jan 21, 2012        =
===============================

[+] Opening socketpair.
[+] Waiting for transferred fd in parent.
[+] Executing child from child fork.
[+] Opening parent mem /proc/13705/mem in child.
[+] Sending fd 5 to parent.
[+] Received fd at 5.
[+] Assigning fd 5 to stderr.
[+] Ptracing su to find next instruction without reading binary.
[+] Resolved exit@plt to 0x4020c0.
[+] Calculating su padding.
[+] Seeking to offset 0x4020a5.
[+] Executing su with shellcode.
sh-4.2# whoami
root
sh-4.2# uname -a
Linux ztux 3.1.6-zen+ #1 ZEN SMP PREEMPT Sat Dec 31 23:16:57 MSK 2011 x86_64 AMD Phenom(tm) II X4 945 Processor AuthenticAMD GNU/Linux
sh-4.2#

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

13

newzenon пишет:

От жеж ....

РЕШЕТО

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

14

В Gentoo «пофиксили» — http://sources.gentoo.org/cgi-bin/viewv … g?view=log

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

15

 Консоль:
doc@dt:~$ gcc e.c
doc@dt:~$ ./a.out
===============================
=          Mempodipper        =
=           by zx2c4          =
=         Jan 21, 2012        =
===============================

[+] Ptracing su to find next instruction without reading binary.
[+] Creating ptrace pipe.
[+] Forking ptrace child.
[+] Waiting for ptraced child to give output on syscalls.
[+] Ptrace_traceme'ing process.
[+] Error message written. Single stepping to find address.
[+] Resolved call address to 0x80499e8.
[+] Opening socketpair.
[+] Waiting for transferred fd in parent.
[+] Executing child from child fork.
[+] Opening parent mem /proc/17805/mem in child.
[+] Sending fd 6 to parent.
[+] Received fd at 6.
[+] Assigning fd 6 to stderr.
[+] Calculating su padding.
[+] Seeking to offset 0x80499dc.
[+] Executing su with shellcode.
doc@dt:~$ whoami
doc
doc@dt:~$ cat /etc/slackware-version
Slackware 13.37.0
doc@dt:~$ uname -a
Linux dt 2.6.38.7-smp #2 SMP Sat May 21 23:13:29 CDT 2011 i686 Intel(R) Celeron(R) D CPU 3.06GHz GenuineIntel GNU/Linux


так-то!

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)

16

 Консоль:
sergey@Pent4-desktop:~$ whoami
sergey
sergey@Pent4-desktop:~$ ./a.out
===============================
=          Mempodipper        =
=           by zx2c4          =
=         Jan 21, 2012        =
===============================

[+] Ptracing su to find next instruction without reading binary.
[+] Creating ptrace pipe.
[+] Forking ptrace child.
[+] Waiting for ptraced child to give output on syscalls.
[+] Ptrace_traceme'ing process.
[+] Error message written. Single stepping to find address.
[+] Resolved call address to 0x8049570.
[+] Opening socketpair.
[+] Waiting for transferred fd in parent.
[+] Executing child from child fork.
[+] Opening parent mem /proc/6816/mem in child.
[+] Sending fd 6 to parent.
[+] Received fd at 6.
[+] Assigning fd 6 to stderr.
[+] Calculating su padding.
[+] Seeking to offset 0x8049555.
[+] Executing su with shellcode.
sergey@Pent4-desktop:~$ uname -a
Linux Pent4-desktop 3.0.0-15-generic #26-Ubuntu SMP Fri Jan 20 15:59:53 UTC 2012 i686 i686 i386 GNU/Linux
sergey@Pent4-desktop:~$ whoami
sergey


smile

Да, у меня Ubuntu.
Нет, не глючит.