Выпущены обновления Linux ядра - 2.6.24.2 (http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.24.2), 2.6.22.18 (http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.22.18) и 2.6.23.16 (http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.23.16), с исправлением уязвимости, используя которую локальный злоумышленник может получить права суперпользователя в системе.Проблема вызвана отсутствием проверки указателя в системном вызове vmsplice (http://lwn.net/Articles/181169/), используемом для прямого копирования данных из файлового дескриптора в память. Начиная с ядра 2.6.17, для устранения лишних пересылок между буферами ядра, в sendfile() задействован механизм ввода/вывода - splice.
Уязвимости подвержены все Linux ядра начиная с 2.6.17 и заканчивая 2.6.24.1. Проблему усугубляет наличие эксплоита (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=464953) в открытом доступе.URL: http://permalink.gmane.org/gmane.linux.kernel.announce/509
Новость: http://www.opennet.me/opennews/art.shtml?num=14141
Жесть !!!
Как это они так промахнулись в свое время...
>Жесть !!!
>Как это они так промахнулись в свое время...В любой программе всегда есть уязвимости
>>Жесть !!!
>>Как это они так промахнулись в свое время...
>
>В любой программе всегда есть уязвимостиВ любой программе или в любом ядре? :)
НЕТУ уязвимостей в программах, писанных with security in mind :) НЕ ТУ :)Уже лет 50 всё пишут й пишут о ПРОВЕРКЕ валидности ввода, а все есть простор для йексплойтов :)
>НЕТУ уязвимостей в программах, писанных with security in mind :) НЕ ТУ
>:)Не надо ля-ля. Уж слишком хорошо помнится искреннее удивление Solar Designer при выходе из чрута двойным chroot(2).
>Уже лет 50 всё пишут й пишут о ПРОВЕРКЕ валидности ввода, а
>все есть простор для йексплойтов :)Есть предел представимости кода и данных в человеческой голове.
>В любой программе или в любом ядре? :)Даже в ОЧЕНЬ МАЛЕНЬКИХ ядрах бывают очень обидные баги.Как пример - дырка в гипервизоре xbox360 была.Уж куда, блин, мельче.
>НЕТУ уязвимостей в программах, писанных with security in mind :) НЕ ТУ
>:)Ох уж эти сказочники, ох уж эти сказки.В теории оно, конечно, именно так.Но на практике все выглядит иначе: авторы понтуются секурити программы ... пока ее однажды не сломают.Потом стыдливо затыкаются :)
>Уже лет 50 всё пишут й пишут о ПРОВЕРКЕ валидности ввода, а
>все есть простор для йексплойтов :)Баги были, есть и будут есть.В теории бывают безошибочные программы.На практике - нет.
Интересно в каких дистрах уже выпущены обнавления безопастности по этой проблеме?
Поделитесь!
У меня Debian 4 пока еще молчат...
>Интересно в каких дистрах уже выпущены обнавления безопастности по этой проблеме?
>Поделитесь!
>У меня Debian 4 пока еще молчат...Через год проснётся, не волнуйся.. :D
>У меня Debian 4 пока еще молчат...2aZ
> Через год проснётся, не волнуйся.. :DОднако бессонница у старичка :)
http://lists.debian.org/debian-security-announce/debian-secu...
>Интересно в каких дистрах уже выпущены обнавления безопастности по этой проблеме?
>Поделитесь!
>У меня Debian 4 пока еще молчат...а у меня еще 6-я федора, дык не работает эксплойт :-) вызывает ошибку сегментирования и все. думаю, что во всех дистрах от редхата данный эксплойт не работает.
Ps:
uname -r
2.6.22.9-61.fc6
На платном пятом RHES и оракловом (на нем же основанном) работает. Либо в панику вываливает.
>Интересно в каких дистрах уже выпущены обнавления безопастности по этой проблеме?
>Поделитесь!
>У меня Debian 4 пока еще молчат...В Gentoo утром появилось.
На моей рабочей debian lenny - работаетuname -a
Linux admin 2.6.22-3-686 #1 SMP Mon Nov 12 08:32:57 UTC 2007 i686 GNU/LinuxНо сервера на freebsd :)
Gentoo c hardened ядром кладет болт на этот эксплоитhl@aquinas /tmp $ uname -a
Linux aquinas 2.6.23-hardened-r1 #3 SMP Mon Dec 10 23:14:52 MSK 2007 x86_64 Intel(R) Core(TM)2 Quad CPU @ 2.40GHz GenuineIntel GNU/Linuxhl@aquinas /tmp $ id
uid=1000(hl) gid=100(users) группы=16(cron),100(users)hl@aquinas /tmp $ ./explo2
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x351511d06000 .. 0x351511d38000
Убито
hl@aquinas /tmp $ cat /etc/shadow
cat: /etc/shadow: Отказано в доступеhl@aquinas /tmp $ id
uid=1000(hl) gid=100(users) группы=16(cron),100(users)
>Gentoo c hardened ядром кладет болт на этот эксплоита ты запусти несколько раз иногда срабатывает
debian lenny 2.6.22-3-k7работает ((((
Как проверить работает эта фича или нет?
>Как проверить работает эта фича или нет?Лол! Оказывается уязвимости - это фичи такие, я валяюсь...
>Как проверить работает эта фича или нет?собирается командой gcc <имя файла>
Мандрива 2008 - в нокаут, щас буду генту проверять
неприятно
Короче полная Ж!Тестил и просто эксплоит и изменение системного вызова, даже если эксплоит падает с сег. фоултом, машина все равно на какойто раз уходит в кернел паник.
Подвержены виртуальные машины Xen, а на OpenVZ падает нафинг всех node.
Слава linux-у, у меня все сервера в полном... хочу ругацца матом
>Короче полная Ж!
>
>Тестил и просто эксплоит и изменение системного вызова, даже если эксплоит падает
>с сег. фоултом, машина все равно на какойто раз уходит в
>кернел паник.
>
>Подвержены виртуальные машины Xen, а на OpenVZ падает нафинг всех node.
>
>Слава linux-у, у меня все сервера в полном... хочу ругацца матомНа virtuozzo тоже полный абзац
>[оверквотинг удален]
>>
>>Тестил и просто эксплоит и изменение системного вызова, даже если эксплоит падает
>>с сег. фоултом, машина все равно на какойто раз уходит в
>>кернел паник.
>>
>>Подвержены виртуальные машины Xen, а на OpenVZ падает нафинг всех node.
>>
>>Слава linux-у, у меня все сервера в полном... хочу ругацца матом
>
>На virtuozzo тоже полный абзацА типа virtuozzo не openvz... вот разница а :)
Наложил патчик уже, на остальных жду офф. обновления - ибо там шелов нет почти и все доверенные.А у кого сегфолтится, вы много раз подряд запускайте его :D потом ловите машину в кернел панике.
И фанатикам привет, как-будто фрю не люди, а роботы пишут, ай тоже ошибаться могут.
Летим дальше.
>а на OpenVZ падает нафинг всех node.Это с N-го раза?
юзайте PAX в ядре и не будет такое г.. вас беспокоить
Почему это всех так удивляет - как будто в никсах раньше дырок не было.... Что ж вы хотите при таком кол-ве постоянных изменений - до 1500 строк в сутки?
>Почему это всех так удивляет - как будто в никсах раньше дырок
>не было.... Что ж вы хотите при таком кол-ве постоянных изменений
>- до 1500 строк в сутки?маладёжь...не видели детки ещё значить...
Я в шоке..
Чёй-то не компиляетса... Пишет:
expl.c:335:207: warning: no newline at end of fileВ чём бага?
>Чёй-то не компиляетса... Пишет:
>expl.c:335:207: warning: no newline at end of file
>
>В чём бага?добавь пустую строчку в конце файла.
непомогает... иначеб не спрашивал.
warning не error, компили и запускай =))
>warning не error, компили и запускай =))Ворнинг то не ерор, но ксплоит непашет:
kender@navi:~/bin> ./expl
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7dce000 .. 0xb7e00000
[-] vmsplice
kender@navi:~/bin>В чём бага? Система: openSuSe10.3
kender@navi:~/bin> uname -r
2.6.22.5-23-default
баги-то как раз и нету. радуйся.
ядро 2.6.20-gentoo-r8-inst, выдал только это:
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[-] !@#$
На Gentoo 2.6.24-gentoo тоже работает Ж((Мда нафиг нужен su если есть эксплойт.
а у тебя su любой пользователь может заюзать?)))
>а у тебя su любой пользователь может заюзать?)))Да любой. А что при отсутствии пользователя в группе wheel эксплойт не пашет?
еще вчера в gentoo-sources-2.6.24-r1 и практически сразу r2 сказано что пофиксено относительно всех извествных эксплойтов на эту уязвимость.
Из под обычного пользователя запустите и все заработает
user@admin:~/Desktop:$ ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7dff000 .. 0xb7e31000
[+] root
root@admin:~/Desktop:# uname -a
Linux admin 2.6.21.5-smp #2 SMP Tue Jun 19 14:58:11 CDT 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/LinuxSlackware 12.0... Работает зараза.
Ubuntu со всеми апдейтами на ноуте - работает.Фряшка 6.3 с линукс эмуляцией - vmsplice not implemented. Плохой во фре линуксятор ;-)))
>Фряшка 6.3 с линукс эмуляцией - vmsplice not implemented. Плохой во фре
>линуксятор ;-)))Дык и если бы была эмуляция, то не работала бы. Это же не ядро линукса сюда впихивают, а собственный код пишут
>>Фряшка 6.3 с линукс эмуляцией - vmsplice not implemented. Плохой во фре
>>линуксятор ;-)))
>
>Дык и если бы была эмуляция, то не работала бы. Это же
>не ядро линукса сюда впихивают, а собственный код пишутВ FreeBSD эмулируется Linux 2.6.16, поэтому и нету vmsplice ;)
Все подняли такой шум не из-за очередной ошибки никсов, а из-за общедоступного _рабочего_ эксплоита, благодаря которому любой ушастик сможет положить большинство серверов (имея там шелл).
Вот что страшно...
>Все подняли такой шум не из-за очередной ошибки никсов, а из-за общедоступного
>_рабочего_ эксплоита, благодаря которому любой ушастик сможет положить большинство серверов (имея
>там шелл).
>Вот что страшно...даже не шелл, а, например, cgi.
>Все подняли такой шум не из-за очередной ошибки никсов, а из-за общедоступного
>_рабочего_ эксплоита, благодаря которому любой ушастик сможет положить большинство серверов (имея
>там шелл).
>Вот что страшно...Типа, именно ушастик и именно положить :)
>>Все подняли такой шум не из-за очередной ошибки никсов, а из-за общедоступного
>>_рабочего_ эксплоита, благодаря которому любой ушастик сможет положить большинство серверов (имея там шелл).Если охота поиметь хостера так имея шел можно повесить на нем проксик и ехидно шепнуть о нем на проксичекательном ресурсе.После этого ехидно наблюдать как трафф полезет в гору :) и никакие руты в общем то для такой подставы не нужны а траффа будет дай боже :)
Не работает.uname -a
2.6.18-xen #1 SMP Fri May 18 16:01:42 BST 2007 x86_64 GNU/LinuxKernel из комплекта xen-3.1 (бинарная сборка).
Не работет как в dom0, так и в domU.
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x100000000000 .. 0x100000001000
[+] page: 0x100000000000
[+] page: 0x100000000038
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4038
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0x2b0662960000 .. 0x2b0662992000
Segmentation fault
kernel: general protection fault: 0000 [1] SMP
Да, теперь хана тому, что не обновиться. :( Слава богу, серваки у меня на фре.
Это ж сколько корпоративных серверов поимели в первые несколько часов после выхода сплойта?!
У вас есть локальные права на корпоративных серверах? :)
Как правильно сказали, достаточно cgi. Либо удаленный шелл через php.
>Как правильно сказали, достаточно cgi. Либо удаленный шелл через php.Сказал я :)
Повторюсь, у вас есть шелл на корпоративных серверах? :) Или CGI?Да и с php грамотные админы врубают safe mode и отрубают функции выполнения кода. Так что как раз для corporate этот эксплоит не страшен. В отличии от хостинг провайдеров и community services. Кстати, первое что я сделал - проверил шелл сервера на берлиос и соурсфорж. И там и там старые ядра, так что отдыхаем :)
а чё вы переживаете, ну очередной эксплойт и что?
это *преимущество* открытого кода.
т.к. в открытом коде, если даже кто-то заметит баг и втихаря начнёт его юзать,то рано или поздно другой умный и внимательный хлопец заметит *ТОЖЕ* заметит это и напишет разработчикам.
а в случае с закрытыми исходниками....ммм... тот первый хитрец будет его использовать несколько лет(!!!!!!!!!) и никто этого не узнает.
так что это абсолютно штатная ситуация.
всё равно open source рулит. у кого правда тот и сильнее)
"И что?" - у вас будет ровно до тех пор, пока 10 или больше серверов вашей компании, которые должны работать в режиме nonstop, не накроются медным тазом. Проблема ведь не в том, что "ой, неужели Linux уязвим?", а в последствиях, которые может иметь опубликованный сплойт в руках "юных хакеров".
кто заставляет вас открывать на них локальный доступ?Реально проблема затрагивает, в основном, хостинг провайдеров и community сервера, с shell access. И то и другое можно смело положить на время апгрейда, а если так уж критично - есть куча вариантов с дублированием серверов (например, с единой нфс файловой базой) и последовательным ребутом. Не первый и не последний експлоит, "и не надо так кричать".
>"И что?" - у вас будет ровно до тех пор, пока 10
>или больше серверов вашей компании, которые должны работать в режиме nonstop,
>не накроются медным тазом. Проблема ведь не в том, что "ой,
>неужели Linux уязвим?", а в последствиях, которые может иметь опубликованный сплойт
>в руках "юных хакеров".А в случае виндов все тупо приходит к тому что МИЛЛИОНЫ машин по всей планете каждый день шлют спам.А упыри из микрософта еще имеют наглость демонстративно бороться со злом которое на 99.9% сами же и создали.Вы представляете себе ддосы, спам и прочие "приятности" без дырявых виндов?Нет?Ну надо же.Один мощный сервак под линуксом не вопрос отстрелить где-нить на фиреволле.А вот много тысяч виндовых зомбиков фиг отстрелишь когда они вперемешку с легитимными клиентами.
Уже пропатчил ядро.. У меня 2.6.21.5 ,так что патч по ссылке для него не подошел, номер строки другой в моем файле. Весь смысл в том, чтобы найти в файле /usr/src/linux/fs/splice.c строку: if (unlikely(!base)) и заменить ее на
if (!access_ok(VERIFY_READ, base, len))Далее можно собирать новое ядро и потом exploit уже не пашет - проверил.
>Уже пропатчил ядро.. У меня 2.6.21.5 ,так что патч по ссылке для
>него не подошел, номер строки другой в моем файле. Весь смысл
>в том, чтобы найти в файле /usr/src/linux/fs/splice.c строку: if (unlikely(!base)) и
>заменить ее на
>if (!access_ok(VERIFY_READ, base, len))
>
>Далее можно собирать новое ядро и потом exploit уже не пашет -
>проверил.Большое спасибо, а то бы пришлось самому копать, совсем неохота снимать патчи с ядра.
Респект и уважуха :)
gentoo-никам обновить ядро и все!
>gentoo-никам обновить ядро и все!Вот кому-кому, а гентушникам необязательно обновляться мне кажется...
scroll@skim ~ $ gcc ./b.c
./b.c:12:22: error: asm/page.h: Нет такого файла или каталога
./b.c: В функции ‘main’
./b.c:193: ошибка: ‘PAGE_SIZE’ undeclared (first use in this function)
./b.c:193: ошибка: (Each undeclared identifier is reported only once
./b.c:193: ошибка: for each function it appears in.)Возможно я криворукий?
п.с. uname -a
Linux skim 2.6.21-gentoo-r3 #1 SMP Sun Jul 22 14:10:04 MSD 2007 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ AuthenticAMD GNU/LinuxП.П.С. у меня возникает ощущение, что не работает просто на амдшных процах... Хотя судя по коду проц мало отношения имеет к делу, но статистика...
>[оверквотинг удален]
>
>п.с. uname -a
>Linux skim 2.6.21-gentoo-r3 #1 SMP Sun Jul 22 14:10:04 MSD 2007 i686
>AMD Athlon(tm) 64 X2 Dual Core Processor 6000+ AuthenticAMD GNU/Linux
>
>
>
>П.П.С. у меня возникает ощущение, что не работает просто на амдшных процах...
>Хотя судя по коду проц мало отношения имеет к делу, но
>статистика...у мня тоже нет такого на серверах с vserver ядром
в 2.6.17 есть... проапгр
$ uname -a
Linux zkc 2.6.24.2-zkcr0 #1 PREEMPT Mon Feb 11 18:44:23 EET 2008 i686 GNU/Linuxобновилсо. На 2.6.24.1 работало :(
зы, дебиан ленни
однозначно радует оперативность выхода патча
ubuntu 8.04test@srv-2:~/exploits$ uname -a
Linux srv-2 2.6.24-5-server #1 SMP Thu Jan 24 20:26:45 UTC 2008 i686 GNU/Linux
test@srv-2:~/exploits$ ./proof-of-concept
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e36000 .. 0xb7e68000
[-] vmsplice
test@srv-2:~/exploits$ id
uid=1001(test) gid=1001(test) groups=1001(test)
test@srv-2:~/exploits$не работает!
2.6.22.12-desktop-1mdv
[xxx@nixhouse tmp]$ ./exploit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] addr: 0xc011e150
[-] wtf
[xxx@nixhouse tmp]$Эээ. Не пашет видать. Mandriva 2008
хорошо хоть 2.4 не берет, проверенно.
>хорошо хоть 2.4 не берет, проверенно.полностью согласен :))))
$uname -a
Linux Undead 2.4.31 #6 Sun Jun 5 19:04:47 PDT 2005 i686 unknown unknown GNU/Linux
Как и сказал: gentoo-никам обновить ядро и все!
до обновлении ядро exploit работал а после неа:-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e78000 .. 0xb7eaa000
[-] vmsplice: Bad address
Я дро можно обновить на любом дистрибе и все, просто на дистрибах с извращенными ядрами типа suse придется накопать нужных патчей (просто помню поставил на сусе ванильное ядра DNS и Apparmor отвалились :). Или ждать официального ядра для дистров.
В Slackware уже новое ядро лежит. Переставил и все, не работает.
>В Slackware уже новое ядро лежит. Переставил и все, не работает.У меня другой вопрос -- кто ещё _не_ выпустил исправление?
>Я дро можно обновить на любом дистрибе и все, просто на дистрибах
>с извращенными ядрами типа suse придется накопать нужных патчей (просто помню
>поставил на сусе ванильное ядра DNS и Apparmor отвалились :). Или
>ждать официального ядра для дистров."kender@navi:~/bin> ./expl
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7dce000 .. 0xb7e00000
[-] vmsplice
kender@navi:~/bin>В чём бага? Система: openSuSe10.3
kender@navi:~/bin> uname -r
2.6.22.5-23-default" (см. выше)На дистрах с "изврашенными" ядрами типа сусе, оно просто не работат )))
hoster1@mera:/tmp$ ./rootit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
Run as root to minimize risk of crashing system
Press Enter to proceed as normal user. Press Ctrl-C to abort.[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7de9000 .. 0xb7e1b000
[-] vmsplice
hoster1@mera:/tmp$
mysql@mera:/tmp$ uname -a
Linux mera 2.6.21.5-smp #2 SMP Tue Jun 19 14:58:11 CDT 2007 i686 Intel(R) Celeron(R) CPU 2.60GHz GenuineIntel GNU/Linux
на слакваре не сработал, хотя до этого видел посто что на этом ядре получилосьhoster1@mera:/tmp$ ./rootit
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
Run as root to minimize risk of crashing system
Press Enter to proceed as normal user. Press Ctrl-C to abort.[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7de9000 .. 0xb7e1b000
[-] vmsplice
hoster1@mera:/tmp$
hoster1@mera:/tmp$ uname -a
Linux mera 2.6.21.5-smp #2 SMP Tue Jun 19 14:58:11 CDT 2007 i686 Intel(R) Celeron(R) CPU 2.60GHz GenuineIntel GNU/Linux
на слакваре не сработал, хотя до этого видел посто что на этом ядре получилось
Centos 5 ядро 2.6.18-53.1.4.el5
эксп работает