Pull to refresh

Comments 53

Т.е. воспользоваться повышенными правами удастся только в одном случае из 4х попыток?
Да нет, я к тому, что не совсем понятна формулировка с крахом ядра. Ядро може сразу упасть, или уже постфактум через какое-то время?
Я правильно понял, что PAX эта уязвимость не пробивает?
Насколько я понял, PAX не защищает от данной уязвимости. Но Intel SMEP защитит конкретно от этого эксплоита.

Данный эксплоит использует запись за границу буферов tty, чтобы перезаписать структуры tty_struct, заменив в них все указатели tty_operations на payload. Функция payload вызывает «commit_creds(prepare_kernel_cred(0))». SMEP не позволит вызвать функцию payload, находящуюся в адресном пространстве пользователя.
А говорил: «Я не разбираюсь, я не понимаю в этом ничего» :)
В версии поста до правки было же, имхо, про 75% вероятность краха.
Более того, только если у тебя 3.14-3.15.
И то надо помнить правило — не запускать что попало.
Технически только недавно 3.14 вышло, обнаружение таких багов показывает всю прелесть опенсорса — баг обнаружен и как я понимаю пофикшек. И в 3.15 релизе уже его не будет.

Кармы не хватает на ответ людям.
lolipop, «Представляю как сейчас андроид-ждуны, ждущие рута на свои девайсы радостно потирают ручки :)»
Неа, уязвимостью можно пользоваться лишь на 3.14 вышедшем недавно. Причем как я понимаю уже вышла версия с фиксом для 3.14 этого бага.
А прочитать дальше первой строки слабо?

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'ах наверняка будут поддерживаться и более старые ядра.
Ещё одна бородатая уязвимость. 2.6.31-rc3 зарелизили в середине 2009 года.
Он имеет в виду, что эта уязвимость была доступна пять лет.
Представляю как сейчас андроид-ждуны, ждущие рута на свои девайсы радостно потирают ручки :)
Еще один кандидат на попадание в авторутилки.
Works only on kernels >=v3.14-rc1 and only on x86_64.

Увы.
Упс, глупость сказал. Это касается только конкретного эксплойта.
Ubuntu 14.04, Linux 3.13.0-26-generic — не сработало.
$ ./exploit
[+] Resolving symbols
[+] Resolved commit_creds: (nil)
[+] Resolved prepare_kernel_cred: (nil)
$ id
uid=1000
Видимо из-за того что
Эксплоит работает только на ядрах >= v3.14-rc1

И для 3.13 нужен другой.
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 ~ #
Подскажите как скомпилить для проверки?
В исходниках написано
$ gcc cve-2014-0196-md.c -lutil -lpthread
Автор статьи указывает что работает на 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)

Где подвох?
Ошибка есть в ядрах 2.6.31 — 3.15-rc1. Конкретно этот эксплоит работает на >= v3.14-rc1
Текущий эксплоит работает только с новыми ядрами (>= v3.14-rc1), под ваше ядро (2.6.32...) нужен другой эксплоит.
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
Вспомнилось «под линух есть 9 вирусов, причем половина из них не работает, а вторую половину стоит больших трудов скомпилить и запустить» (очень примерная цитата).
Нудный этот ваш линух… Даже эксплоиты не всегда работают.
Забавно, хотя на самом деле не так-то и забавно, что данная уязвимость находилась в ядре, как уже заметили выше, около пяти лет и только сейчас ее заметили и пофиксили. И я думаю там еще не одна такая мина замедленного действия лежит. Что немудрено на самом деле.

Еще интересна тема с обновлением старых ядер. Кто-то ведь может сидеть и на старом ядре 2.6.32 каком-нибудь например. Почему это уже другой вопрос. Например из-за экзотических устройств, китайцы знаете очень любят писать для своих устройств драйверы, как модуль ядра, причем для какой-нибудь бородатой версии. А мэйнтейнеры пофиксили скорее всего только свежие версии, несколько последних например.

Полистал ЛОР. Как всегда доставляет. И вам советую. :)

Кстати про мой любимый Debian:
For the stable distribution (wheezy), these problems have been fixed in version 3.2.57-3+deb7u1.
uname -a
Linux host 2.6.32-431.11.2.el6.x86_64

красные шляпы просто не торопятся
Ядро 2.6.32 тоже подвержено уязвимости… (facepalm)
Я и говорю — редхет просто не торопится с обновлениями, несмотря на то, что вовсе не китайцы с бородатыми драйверами.
Так они на то и RH, чтобы не торопиться с обновлениями :)
P.S. Сначала почему-то подумал, что имеется в виду ядро, якобы слишком старое для этой уязвимости.
Актуальное ядро в centos updates — 2.6.32-431.17.1.el6 (в rhel должно быть оно же), но в нем фикса пока нет.
Дополню, что оно вышло 11 апреля для RHEL и 1 мая для CentOS. Исправляло, в том числе, пачку CVE.
Странно то, что половина комментаторов не различают «уязвимость в ядре» и «эксплоит эксплуатирующий данную уязвимость»…
Разве вы не слышали, что хабр уже не торт?
А как это выглядит в журнале аудита ОС?
А с помощью этой штуки я могу получить рут на своём андроиде?
Очевидно, если у вас ядро 3.14, то вы сможете воспользоваться эксплоитом… предварительно скомпилировав его на конечном устройстве (а есть ли на ведройде gcc? :] ). Если ядро подвержено уязвимости, но не 3.14, то, видимо, придется искать другой эксплоит.
Кроме того, это не перманентный рут, ЕМНИП, вам нужно будет установить Superuser или что-нибудь вроде него после получения временного рута.
предварительно скомпилировав его на конечном устройстве
Кросс-комиляция разве не сойдёт?
Гентушники как всегда долго собираются :)
UFO landed and left these words here
Вы лучше пишите где не пропатчили. ) Хабраэффект не заставит себя долго ждать.
Only those users with full accounts are able to leave comments. Log in, please.