LINUX.ORG.RU

Обнаружена уязвимость в ядре Linux от 2.6.37 до 3.8.10

 , ,


3

4

Вчера в сети появился рабочий эксплоит для всех версий ядра Linux от 2.6.37 до 3.8.10, позволяющий локальному пользователю получить права root. Эксплоит работает лишь на платформе amd64. В RHEL/CentOS 6 данная уязвимость была бэкпортирована в ядро 2.6.32. Таким образом, уязвимыми оказались все основные выпуски наиболее популярных серверных дистрибутивов: Debian 7.0, RHEL/CentOS 6, Ubuntu 12.04. О выходе обновлений, закрывающих уязвимость, пока ничего не сообщается.

>>> Исходники и краткая информация

★☆

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 1)
Ответ на: комментарий от Anon

лишь на крайне ограниченном количестве ведер?

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

//говорят и на дебиане работает

xtraeft ★★☆☆
()
Последнее исправление: xtraeft (всего исправлений: 2)
~:./a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
a.out: stuff.c:81: main: Assertion `p = memmem(code, 1024, &needle, 8)' failed.zsh: abort      ./a.out[
[44268.868982] type=1400 audit(1368596407.925:255): avc:  denied  { execmem } for  pid=25912 comm="a.out" scontext=system_u:system_r:initrc_t:s0 tcontext=system_u:system_r:initrc_t:s0 tclass=process[

гнусно смеюсь :3 debian wheezy 64bit

Khades ★★
()
Последнее исправление: Khades (всего исправлений: 2)
Ответ на: комментарий от Khades

для некоторых подобных сплойтов раньше энтузиасты прикручивали и обход selinux, так что смеяться не надо

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

корп. Майкрософт делает настолько хреновые ОС, что на эту уязвимость можно и не обращать внимание, сообщество все быстро исправит.
Зато Линукс не глючит и позволяет полностью контролировать систему. Понятный как запорожей и фольцваген жук!

звучит как отчаяние :)

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

у меня бугурт щас, собрал на десктопе с -O2, и оно крашит систему, без сетенфорса

~:./a.out 
a.out: stuff.c:74: main: Assertion `(code = (void*)mmap((void*)kbase, 0x2000000, 7, 0x32, 0, 0)) == (void*)kbase' failed.
zsh: abort      ./a.out

А вот так с сетенфорсом

Khades ★★
()
battlecoder@gallifrey /tmp $ gcc semtex.c 
battlecoder@gallifrey /tmp $ ./a.out 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
a.out: semtex.c:81: main: Assertion `p = memmem(code, 1024, &needle, 8)' failed.
Аварийный останов
battlecoder@gallifrey /tmp $ uname -a
Linux gallifrey 3.8.8-gentoo #2 SMP Sat May 11 09:23:54 MSK 2013 x86_64 AMD Phenom(tm) II X4 B50 Processor AuthenticAMD GNU/Linux
battlecoder@gallifrey /tmp $

Не работает. Я так понимаю, я должен консольку рута получить? Или по-другому как-то?

BattleCoder ★★★★★
()
Последнее исправление: BattleCoder (всего исправлений: 3)
neverloved@thecloneofmyown ~/work/exploit $ gcc -O2 -o semtex semtex.c
 neverloved@thecloneofmyown ~/work/exploit $ ./semtex 
 2.6.37-3.x x86_64
 sd@fucksheep.org 2010
 thecloneofmyown exploit # 

Гыгы, заработало! :) gentoo-sources-3.7.10

NeverLoved ★★★★★
()

В RHEL/CentOS 6 данная уязвимость была бэкпортирована в ядро 2.6.32.

Как звучит! :)

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

Оо. с -O2 запустилось... прикольно. Или не прикольно... для продакшена.

BattleCoder ★★★★★
()
Ответ на: комментарий от BattleCoder
al@work:~/root$ gcc -Wall -Wextra -O2 ./semtex.c -o setex
al@work:~/root$ ls
semtex.c  setex
al@work:~/root$ whoami
al
al@work:~/root$ ./setex 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
root@work:~/root# whoami
root
root@work:~/root# uname -a
Linux work 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
root@work:~/root# 


Вот как-то так это выглядит на wheezy
Xunnu ★★
()
Ответ на: комментарий от Xunnu

ну я уже понял, -02 хватило, -Wall и Wextra вообще не нужны и на компиляцию в принципе по-моем не вливают =)

у меня тоже получилось зарутиться

BattleCoder ★★★★★
()

Не могли чуть пораньше, когда у меня 3.8 было. Нефортит, не пашут експлоиты

vova7890 ★★★
()

14-я Слакварь, ванильное 3.2.36

с -O2 падает в корку и вешается намертво.

Это, на моей памяти, первый эксплойт, который частично сработал в Слаке

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

то должно работать везде,

не везде, а на x86_64 2.6.37 - 3.8.10

xtraeft ★★☆☆
()

В RHEL/CentOS 6 данная уязвимость была бэкпортирована в ядро 2.6.32

Хорошо ещё, что в 2.6.18 не портировали. Продолжаю использовать на некоторых серверах с центосью 2.6.18-274.3.1.el5

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

Или по-другому как-то?

да, по другому, надо с o2 компилять.

//линуксоиды как дети - все непонятное в рот тащат, даже в сорцы не заглядывая.
а если бы там вместо рутового /bin/sh удаление раздела запускалось?

xtraeft ★★☆☆
()

Ubuntu

gcc -O2 -o semtex semtex.c

:~/Downloads$ ./semtex Killed

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

LinuxDebian ★★★★
()

А мне нравится поведение местного зоопарка: все примеряют на себя локальную root-уязвимость как будто есть вероятность что к ним обязательно придет кто-нибудь и начнет получать права root на их школьных арчиках и генточках. Реально, стадо какое-то.

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

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

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

Реально, стадо какое-то.

Нет, чтобы понять нужно хоть небольшое воображение. Вы наверное и книг без картинок не читаете?

Все просто. Во-первых - линукс достаточно скучный. Он работает и работает. Ничего с ним не происходит. А эксплойт это разнообразие и интересно. Во-вторых - это очень удобная фича: не нужно каждый раз для рута пароль вбивать.

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

это очень удобная фича: не нужно каждый раз для рута пароль вбивать.

Да, об этом я не подумал.

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

Может однажды, лет через триста, будет первая серьёзная эпидемия.

Что бы была серьезная эпидемия должен быть хороший эпидемический порог

Что бы был хороший эпидемический порог нужно что бы Линукс был максимально распространен.

А пока Неуловимый Джо стоит на страже эпидемий

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

Чтобы получить вирус нужно скачать(, скомпилировать) и запустить у себя бинарник.

Небольшой экскурс в историю «эпидемий» - червь Моррисона распространялся в исходниках, компилировался на конечной системе и запускался.

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

А эксплойт это разнообразие и интересно. Во-вторых - это очень удобная фича: не нужно каждый раз для рута пароль вбивать.

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

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

Где крики решето, лоровцы? Или лучи говна только для прочих ОС? Выставляете себя как школофанатики.

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

Во-первых - линукс достаточно скучный. Он работает и работает. Ничего с ним не происходит.

Повторяй как мантру перед сном, авось поможет.

IPR ★★★★★
()
$ gcc -O2 semtex.c 
$ ./a.out 
Killed
$

3.8.8-100.fc17.x86_64

не взлетело.

ukr_unix_user ★★★★
()

Я вот не понимаю, для чего все эти уязвимости анонсируют? Чтобы люди успели воспользоваться подходящим моментом?

SjZ ★★★★★
()
gcc semtex.c  -o semtex
./semtex 
Убито

openSUSE 12.3 x86_64, не работает, но kernel oops есть

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

Чтобы люди успели воспользоваться подходящим моментом?

нет, скорее всего для самолюбования.
тем более что

Патч с устранением проблемы был принят в состав ядра 3.8.9 в апреле, без уведомления о том, что он связан с устранением уязвимости.

и дальше оставлять его в привате не было особого смысла, наверное.

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

Анонсируют новостные сайты. А уязвимости находят, о чём и сообщается. Предлагаешь идти по пути проприетарного софта, когда непонятно, сколько уязвимостей и для чего обновления?

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

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

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

по пути проприетарного софта, когда непонятно, сколько уязвимостей и для чего обновления?

Хотя бы нет криков «РЕШЕТО!!! ЗАКОПАТЬ!!! ЧЕМ НАС КОРМЯТ!!!».

SjZ ★★★★★
()

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

Так что защита линуксовой системы традиционной для винды антивирусной тормозной пачкой софта уже стала более чем оправданной.

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

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

подобные уязвимости уже больше 10 лет всплывают, если что

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

От 0-day сплоитов ничто не спасет.

Камень в огород «винды» - недавний бсод (на хабре есть) от изменения размера окошка О_о.

Да и на серверах чтобы «заюзать» сплоит нужен хоть какой то доступ к серверу дабы бинарь запустить.

pulo
()

Ubuntu 13.04/3.8-generic
Не работает и с -O2 и без него. Бектрейс такой (-O2):

(gdb) run
Starting program: /home/hellcat/projects/a.out 
a.out: semtex.c:51: sheep: Assertion `!close(fd)' failed.

Program received signal SIGABRT, Aborted.
0x00000031b4c37037 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
56      ../nptl/sysdeps/unix/sysv/linux/raise.c: Нет такого файла или каталога.
(gdb) bt
#0  0x00000031b4c37037 in __GI_raise (sig=sig@entry=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
#1  0x00000031b4c3a698 in __GI_abort () at abort.c:90
#2  0x00000031b4c2fe03 in __assert_fail_base (
    fmt=0x31b4d86578 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", 
    assertion=assertion@entry=0x400e4d "!close(fd)", file=file@entry=0x400e44 "semtex.c", 
    line=line@entry=51, function=function@entry=0x400f9e <__PRETTY_FUNCTION__.4667> "sheep")
    at assert.c:92
#3  0x00000031b4c2feb2 in __GI___assert_fail (assertion=0x400e4d "!close(fd)", 
    file=0x400e44 "semtex.c", line=51, function=0x400f9e <__PRETTY_FUNCTION__.4667> "sheep")
    at assert.c:101
#4  0x0000000000400d95 in sheep ()
#5  0x00000000004008a1 in main ()

Блин, ну я так не играю. :(

no-steam ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.