Комментарии 52
Т.е. воспользоваться повышенными правами удастся только в одном случае из 4х попыток?
0
На 3.14.2 отработал успешно.
bugfuzz.com/stuff/cve-2014-0196-md.c
Works only on kernels >=v3.14-rc1 and only on x86_64.
bugfuzz.com/stuff/cve-2014-0196-md.c
Works only on kernels >=v3.14-rc1 and only on x86_64.
+1
Да нет, я к тому, что не совсем понятна формулировка с крахом ядра. Ядро може сразу упасть, или уже постфактум через какое-то время?
0
сразу.
тут больше подробностей
тут больше подробностей
+2
Спасибо за ссылку.
0
Я правильно понял, что PAX эта уязвимость не пробивает?
0
Насколько я понял, PAX не защищает от данной уязвимости. Но Intel SMEP защитит конкретно от этого эксплоита.
Данный эксплоит использует запись за границу буферов tty, чтобы перезаписать структуры tty_struct, заменив в них все указатели tty_operations на payload. Функция payload вызывает «commit_creds(prepare_kernel_cred(0))». SMEP не позволит вызвать функцию payload, находящуюся в адресном пространстве пользователя.
Данный эксплоит использует запись за границу буферов tty, чтобы перезаписать структуры tty_struct, заменив в них все указатели tty_operations на payload. Функция payload вызывает «commit_creds(prepare_kernel_cred(0))». SMEP не позволит вызвать функцию payload, находящуюся в адресном пространстве пользователя.
0
А говорил: «Я не разбираюсь, я не понимаю в этом ничего» :)
+3
В трех из четырех.
+1
Более того, только если у тебя 3.14-3.15.
И то надо помнить правило — не запускать что попало.
Технически только недавно 3.14 вышло, обнаружение таких багов показывает всю прелесть опенсорса — баг обнаружен и как я понимаю пофикшек. И в 3.15 релизе уже его не будет.
Кармы не хватает на ответ людям.
lolipop, «Представляю как сейчас андроид-ждуны, ждущие рута на свои девайсы радостно потирают ручки :)»
Неа, уязвимостью можно пользоваться лишь на 3.14 вышедшем недавно. Причем как я понимаю уже вышла версия с фиксом для 3.14 этого бага.
И то надо помнить правило — не запускать что попало.
Технически только недавно 3.14 вышло, обнаружение таких багов показывает всю прелесть опенсорса — баг обнаружен и как я понимаю пофикшек. И в 3.15 релизе уже его не будет.
Кармы не хватает на ответ людям.
lolipop, «Представляю как сейчас андроид-ждуны, ждущие рута на свои девайсы радостно потирают ручки :)»
Неа, уязвимостью можно пользоваться лишь на 3.14 вышедшем недавно. Причем как я понимаю уже вышла версия с фиксом для 3.14 этого бага.
-4
А прочитать дальше первой строки слабо?
The vulnerability should be exploitable all the way from v2.6.31-rc3, however relevant changes to the TTY subsystem were made in commit acc0f67f307f52f7aec1cffdc40a786c15dd21d9 («tty: Halve flip buffer GFP_ATOMIC memory consumption») that make exploitation simpler, which this exploit relies on.
В «свободный доступ» выложена версия требующая 3.14, но в rootkit'ах наверняка будут поддерживаться и более старые ядра.
The vulnerability should be exploitable all the way from v2.6.31-rc3, however relevant changes to the TTY subsystem were made in commit acc0f67f307f52f7aec1cffdc40a786c15dd21d9 («tty: Halve flip buffer GFP_ATOMIC memory consumption») that make exploitation simpler, which this exploit relies on.
В «свободный доступ» выложена версия требующая 3.14, но в rootkit'ах наверняка будут поддерживаться и более старые ядра.
+6
Ещё одна бородатая уязвимость. 2.6.31-rc3 зарелизили в середине 2009 года.
0
Ubuntu 14.04, Linux 3.13.0-26-generic — не сработало.
$ ./exploit
[+] Resolving symbols
[+] Resolved commit_creds: (nil)
[+] Resolved prepare_kernel_cred: (nil)
$ id
uid=1000
0
ArchLinux, 3.14.2-1-ARCH x86_64, работает.
dfyz@victoria ~ $ ./a.out [+] Resolving symbols [+] Resolved commit_creds: (address) [+] Resolved prepare_kernel_cred: (address) [+] Doing once-off allocations [+] Attempting to overflow into a tty_struct.... [+] Got it :) root@victoria ~ #
+1
3.14.3-1-ARCH x86_64
№1 Краш ядра
№2 Got it :)
Дальше проверять неохота
№1 Краш ядра
№2 Got it :)
Дальше проверять неохота
+5
Подскажите как скомпилить для проверки?
-5
В исходниках написано
$ gcc cve-2014-0196-md.c -lutil -lpthread
+4
Автор статьи указывает что работает на 2.6.31-rc3 — 3.15-rc5 при ядре 2.6.32-431.1.2.0.1.el6.x86_64 имеем такой вывод
[test1@test ~]$ ./a.out
[+] Resolving symbols
[+] Resolved commit_creds: (nil)
[+] Resolved prepare_kernel_cred: (nil)
Где подвох?
[test1@test ~]$ ./a.out
[+] Resolving symbols
[+] Resolved commit_creds: (nil)
[+] Resolved prepare_kernel_cred: (nil)
Где подвох?
-3
Эксплоит работает только на ядрах >= v3.14-rc1
+3
В оригинале bugzilla.novell.com/show_bug.cgi?id=875690 пишут 2.6.31 — 3.15rcX, вероятно автор статьи здесь поставил > не в ту сторону.
-5
Linux archlinux 3.14.2-1-ARCH x86_64
Работает
Проверка:
gcc expl.c -lutil -lpthread
./a.out
Вывод:
[coolinich@archlinux ~]$ ./a.out
[+] Resolving symbols
[+] Resolved commit_creds: 0xffffffff81094990
[+] Resolved prepare_kernel_cred: 0xffffffff81094cf0
[+] Doing once-off allocations
[+] Attempting to overflow into a tty_struct…
[+] Got it :)
[root@archlinux ~]# exit
exit
gcc expl.c -lutil -lpthread
./a.out
Вывод:
[coolinich@archlinux ~]$ ./a.out
[+] Resolving symbols
[+] Resolved commit_creds: 0xffffffff81094990
[+] Resolved prepare_kernel_cred: 0xffffffff81094cf0
[+] Doing once-off allocations
[+] Attempting to overflow into a tty_struct…
[+] Got it :)
[root@archlinux ~]# exit
exit
+1
Вспомнилось «под линух есть 9 вирусов, причем половина из них не работает, а вторую половину стоит больших трудов скомпилить и запустить» (очень примерная цитата).
Нудный этот ваш линух… Даже эксплоиты не всегда работают.
Нудный этот ваш линух… Даже эксплоиты не всегда работают.
-19
Забавно, хотя на самом деле не так-то и забавно, что данная уязвимость находилась в ядре, как уже заметили выше, около пяти лет и только сейчас ее заметили и пофиксили. И я думаю там еще не одна такая мина замедленного действия лежит. Что немудрено на самом деле.
Еще интересна тема с обновлением старых ядер. Кто-то ведь может сидеть и на старом ядре 2.6.32 каком-нибудь например. Почему это уже другой вопрос. Например из-за экзотических устройств, китайцы знаете очень любят писать для своих устройств драйверы, как модуль ядра, причем для какой-нибудь бородатой версии. А мэйнтейнеры пофиксили скорее всего только свежие версии, несколько последних например.
Полистал ЛОР. Как всегда доставляет. И вам советую. :)
Кстати про мой любимый Debian:
Еще интересна тема с обновлением старых ядер. Кто-то ведь может сидеть и на старом ядре 2.6.32 каком-нибудь например. Почему это уже другой вопрос. Например из-за экзотических устройств, китайцы знаете очень любят писать для своих устройств драйверы, как модуль ядра, причем для какой-нибудь бородатой версии. А мэйнтейнеры пофиксили скорее всего только свежие версии, несколько последних например.
Полистал ЛОР. Как всегда доставляет. И вам советую. :)
Кстати про мой любимый Debian:
For the stable distribution (wheezy), these problems have been fixed in version 3.2.57-3+deb7u1.
+8
uname -a
Linux host 2.6.32-431.11.2.el6.x86_64
красные шляпы просто не торопятся
Linux host 2.6.32-431.11.2.el6.x86_64
красные шляпы просто не торопятся
+1
Странно то, что половина комментаторов не различают «уязвимость в ядре» и «эксплоит эксплуатирующий данную уязвимость»…
+18
А как это выглядит в журнале аудита ОС?
-2
А с помощью этой штуки я могу получить рут на своём андроиде?
+1
Очевидно, если у вас ядро 3.14, то вы сможете воспользоваться эксплоитом… предварительно скомпилировав его на конечном устройстве (а есть ли на ведройде gcc? :] ). Если ядро подвержено уязвимости, но не 3.14, то, видимо, придется искать другой эксплоит.
Кроме того, это не перманентный рут, ЕМНИП, вам нужно будет установить Superuser или что-нибудь вроде него после получения временного рута.
Кроме того, это не перманентный рут, ЕМНИП, вам нужно будет установить Superuser или что-нибудь вроде него после получения временного рута.
0
debian 7 уязвим, но обновление уже есть в debian security.
мейнтейнеры генту пока тупят, но мы всегда можем пропатчить сами.
мейнтейнеры генту пока тупят, но мы всегда можем пропатчить сами.
0
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Уязвимость в ядре Linux, позволяющая получить локальный root