|
2.7, XoRe (ok), 00:04, 18/07/2009 [^] [^^] [^^^] [ответить]
| +2 +/– |
>и почему я не удивлён?
Наверное потому что вы давно это ждали?
Чтобы позлорадствовать)
| |
2.15, User294 (ok), 09:33, 19/07/2009 [^] [^^] [^^^] [ответить] | –3 +/– | P S интересно, кто так новости пишет и какая его левая пятка расставляет степен... большой текст свёрнут, показать | |
|
3.19, pentarh (ok), 12:10, 19/07/2009 [^] [^^] [^^^] [ответить]
| –1 +/– |
Уязвимость ох$$$$но критическая. Ломаем вордпресс на хосте, получаем шелл непривилегированного пользователя, компиляем этот эксплойт, запускаем, получаем рута, вешаем руткит.
| |
|
4.22, Хоменко (ok), 18:29, 19/07/2009 [^] [^^] [^^^] [ответить]
| +1 +/– |
... предварительно убедившись, что там присутствует что-то суидное, позволяющее грузить внешние модули, типа pulseaudio. Пара пустяков.
Там все не так просто. Линус на LKML аргументирует, что лажа не в ядре, но прежде всего в суидном бинарнике (выбор авторов пал на pulseaudio), позволяющем делать -L внешний модуль, что позволяет получить локальный рут чуть менее чем абсолютно просто. Это раз.
Полтора. Попутно вскрылось безобразие в SELinux, позволяющее обойтись и без SUID.
Второе. Лажа, несомненно, и код в ядре типа
a = fafa->dada;
if ( !fafa ) return;
найденный где-то в файлах, относящемся до tun. Ее и пофиксили, причем хронологически уже никто не разберет, нашел ли Спендер, как обратить данную лажу в эффектный эксплойт независимо и самостоятельно, либо же его эта идея посетила как раз при просмотре LKML.
И третье -- поведение GCC, элиминирующего вторую строчку в указанном фрагменте уж десять лет как (http://gcc.gnu.org/news/null.html), что дает повод валить вину друг на друга, отмазываясь "неопределенным поведением" в стандартах C.
Рекомендую желающим почитать коменты на http://lwn.net/Articles/341773/, где сам автор высказывается и много весьма осведомленных товарищей, а также http://blog.cr0.org/2009/06/bypassing-linux-null-pointer.html, где сами авторы разбирают и объясняют, что к чему и отчего.
Очень, очень познавательно, товарищи!
ПС. Присоединяюсь к товарищам, высказавшимся о посте юзера294. От себя: кто-нибудь обращал внимание, почему он не ставит пробелов после оканчивающих предложение точек? Это наблюдение уже несколько недель не дает мне покоя, поскольку найти этому объяснение я никак не могу.
| |
|
5.24, XoRe (ok), 19:52, 19/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>От себя: кто-нибудь обращал
>внимание, почему он не ставит пробелов после оканчивающих предложение точек? Это
>наблюдение уже несколько недель не дает мне покоя, поскольку найти этому
>объяснение я никак не могу.
$answer =~ s/ /(rand 1 > 0.5) ? '.' : ' '/egs;
Может так? =)
| |
|
6.26, Хоменко (ok), 21:30, 19/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>$answer =~ s/ /(rand 1 > 0.5) ? '.' : ' '/egs;
>
>Может так? =)
Да нет, он стабильно их не ставит. Но почему? Как в том анекдоте про профессора с бородой и студента -- просто уснуть не могу! :}
| |
|
|
|
3.23, Maxim Chirkov (ok), 19:36, 19/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
Локальную уязвимость в ядре, позволяющую обычному пользователю стать рутом, я отношу и буду относить к разряду критических с максимальной степенью опасности. Разжевывать причины и проводить ликбез у меня сейчас нет времени.
| |
|
4.29, User294 (ok), 21:53, 20/07/2009 [^] [^^] [^^^] [ответить] | +/– | А сайты по части секурити с вами обычно на этот счет не согласны - обычно они не... большой текст свёрнут, показать | |
|
5.33, Maxim Chirkov (ok), 08:22, 21/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
При оценке степени критичности учитывается масса сопутствующих факторов, например, удаленный root через редкоиспользуемый ethernet драйвер может получить среднюю степень опасности, а ошибки приводящие к запуску кода в Firefox - названы критическими.
В случае обсуждаемой ошибки, ее критичность не в локальности и Linux ядре, а в самой концепции возможности такого рода уязвимостей. Кстати, у того же secunia 3 градации уровня критических ошибок - умеренная, высокая и экстремальная. Можете считать, что упоминание на opennet "критической" ошибки примерно соответствует high critical из рейтинга secunia.
| |
|
6.34, User294 (ok), 18:29, 21/07/2009 [^] [^^] [^^^] [ответить] | +/– | Именно Что все ресурсы по безопасности и делают В частности - один из этих факто... большой текст свёрнут, показать | |
|
7.35, mr.morze (?), 19:25, 21/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
> Я вижу тут только 1 проблему: secunia рейтингует это как "Not critical" (1 of 5).
> Пруфлинк = http://secunia.com/advisories/35801
это ссылка на совершенно другую ошибку, не связанную с обсуждаемым экспоитом. Насколько я помню, прочитав новость на opennet полез на secunia.com и там для этой ошибки было поставлено high critical. Возможно сейчас, когда страсти поутихли, поменяли уровень на более низкий, в secunia нередко постфактум правят записи.
| |
|
|
|
|
|
|
1.2, Ky6uk (?), 22:21, 17/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
ky6uk@desu:/tmp/cheddar_bay$ ./cheddar_bay.sh
pulseaudio: no process found
[+] Personality set to: PER_SVR4
Pulseaudio does not exist!
='(
| |
1.4, Amranello (?), 23:07, 17/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
заметьте он сказал что не поможет SELinux, но про grsecurity ничего не сказал, улавливаете мою мысль :-)
| |
1.5, hhg (ok), 23:38, 17/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
читал код сплойта. вижу что это локальный эксплойт для повышения привилегий в системе через криво написанный код в суидном pulseaudio. и причём тут ядро, которое патчится уже с рутовыми правами?
или так: код, выполняемый с рутовыми правами через суидный pulseaudio, патчит ядро и позволяет выполнить код с рутовыми правами через ошибку программиста при работе с указателями в dev/tun?
| |
|
2.10, Хоменко (ok), 04:12, 18/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
Товарищ исчерпывающе осветил вопрос. Заседание можно считать закрытым.
| |
|
|
4.25, hhg (ok), 20:15, 19/07/2009 [^] [^^] [^^^] [ответить]
| +1 +/– |
Это обсуждение этой же новости, но только в духе современного секлаба - 90% "юмора" и 2% по-теме.
| |
4.30, User294 (ok), 22:49, 20/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>Как вам та же херня но под tun?
>http://www.securitylab.ru/news/382677.php
Позволю себе отметить что даже такой желтопрессный и про-виндузятнический ресурс как секлаб почему-то не додумался назвать все это критичным, выставив какую-то ерундовую степень опасности этой уязвимости. Зато опеннет в i-й раз отжигает забойным заголовком с мягко говоря не соответствующим многообещающему заголовку содержанием.
| |
|
|
|
1.6, Аноним (-), 23:48, 17/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
чет не получается
при компиляции выдает
exploit.c: Assembler messages:
exploit.c:455: Error: Incorrect register '%rax' used with 'l' suffix
gcc -v
Целевая архитектура: x86_64-redhat-linux
gcc версия 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC)
Ругается на
asm volatile (
" movl %%esp, %Йx;"
" andl %1, %Йx;"
" movl (%Йx), %0;"
: "=r" (current)
: "i" (0xfffff000)
);
если заменить
" movl (%Йx), %0;"
на
" mov (%Йx), %0;"
компилится, но exploit тогда не работает
./exploit
[+] MAPPED ZERO PAGE!
[+] Resolved tun_fops to 0xffffffffa0b74830
[+] Resolved selinux_enforcing to 0xffffffff81872374
[+] Resolved nf_unregister_hooks to 0xffffffff8132b9fa
[+] Resolved security_ops to 0xffffffff8186fb20
[+] Resolved default_security_ops to 0xffffffff8159f090
[+] Resolved sel_read_enforce to 0xffffffff81189104
[+] Resolved audit_enabled to 0xffffffff8182c804
[+] Resolved commit_creds to 0xffffffff81061597
[+] Resolved init_cred to 0xffffffff8158fa10
[+] *0xffffffffa0b74888 |= 1
[+] b00m!
[+] Disabled security of : nothing, what an insecure machine!
[+] Failed to get root :( Something's wrong. Maybe the kernel isn't vulnerable?
Где что не так?
| |
|
2.9, alex (??), 00:49, 18/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
Во всем, конечно, виноваты x64. Новы не расстраивайтесь. Дефолтный RHEL5 не уязвим. Уязвимость добавили ( бэкпортировали :-) ) в тестовых ядрах, которые могли попасть в 5.4.
Но теперь не попадет.
| |
2.13, pavlinux (ok), 08:02, 18/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>чет не получается
>при компиляции выдает
>exploit.c: Assembler messages:
>exploit.c:455: Error: Incorrect register '%rax' used with 'l' suffix
>Где что не так?
gcc -m32 exploit.c -o exploit
А 64 битная будя так
static inline unsigned long get_current(void)
{
unsigned long current;
asm volatile (
" movq %%rsp, %%rax;"
" andq %1, %%rax;"
" movq (%%rax), %0;"
: "=r" (current)
: "i" (0xfffff000) /* вот тут надо разбираться, старшие нужны или младшие */
);
return current;
}
| |
|
1.8, XoRe (ok), 00:06, 18/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +2 +/– |
Шо за система!
Даже эксплойты не компилятся!
Не то, что в windows - там даже оптимизаторы добавили)
| |
|
2.12, pavlinux (ok), 08:01, 18/07/2009 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Шо за система!
>Даже эксплойты не компилятся!
>Не то, что в windows - там даже оптимизаторы добавили)
В смысле, сразу поставляется отэксплойтодрюченной, с дырами...
| |
|
3.36, User294 (ok), 19:44, 21/07/2009 [^] [^^] [^^^] [ответить]
| +/– |
>В смысле, сразу поставляется отэксплойтодрюченной, с дырами...
Типа того.А как еще назвать сервисы работающие под SYSTEM зачем-то и большой кус GDI в ядре?В итоге поломав в i-й раз RPC сервис хакерью даже права поднимать не надо.
| |
|
|
1.11, аноним (?), 07:00, 18/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> вызванную судя по всему ошибкой в оптимизаторе компилятора GCC.
Неправда! Ошибка явно на стороне ядра, -fdelete-null-pointer-checks прекрасно документирован. Линус почему-то врет, стыдно наверное.
| |
1.31, аноним (?), 23:41, 20/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> struct sock *sk = tun->sk; // initialize sk with tun->sk
> …
> if (!tun)
> return POLLERR; // if tun is NULL return error
>
>This code looks perfectly ok, right?
Хрена себе ok. Сначала разыменовываем указатель, потому проверяем его валидность, так что-ли? Я смотрю ядро и gcc друг друга стоят.
| |
1.38, i (??), 15:28, 29/07/2009 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
а с grsecurity патченным ядром наверняка работать не будет.
Или это тока на редхате работает ?
| |
|