LINUX.ORG.RU

Уязвимость DirtyCred в ядре Linux

 , ,


0

1

Исследователи из Северо-западного Университета в Иллинойсе, Zhenpeng Lin, Yuhang Wu и Xinyu Xing опубликовали данные об уязвимости DirtyCred (идентификатор — CVE-2022-2588). Уязвимыми авторы называют все версии ядра, вышедшие за последние 8 лет.

Уязвимость использует технику use-after-free. Из-за ошибки в файле net/sched/cls_route.c ядро может сначала освободить память, а затем повторно использовать её. В данном случае в памяти размещаются реквизиты доступа, что позволяет злоумышленнику выполнить свою программу с повышенными привилегиями. Для эксплуатации уязвимости необходима программа с SUID битом, доступная злоумышленнику, например, su или sudo.

DirtyCred похожа на мартовскую DirtyPipe, но позволяет больше, например, выход из контейнера.

Прототип эксплоита пока не представлен. Атаки типа use-after-free достаточно сложны в исполнении и не гарантируют стабильный результат, однако обновиться всё-таки стоит.

>>> Подробности

★★★★★

Проверено: maxcom ()
Последнее исправление: Zhbert (всего исправлений: 2)

Уязвимыми авторы называют все версии ядра, вышедшие за последние 8 лет

вот чорд, у меня 3.14. погуглил - 2014 год((
надо что-нибудь постарее пособрать, без этого решета

PerdunJamesBond
()

Вместо того чтобы орать «РЕШЕТО!!!!1111», в очередной раз порадуюсь, что уязвимость была найдена и исправлена.

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

А вот был бы раст а не сишечка, не было бы такого.

Да, было бы другое. :)

Даёшь больше уязвимостей, хороших и разных!..

Somebody
()
Ответ на: комментарий от eternal_sorrow

Вместо того чтобы орать «РЕШЕТО!!!!1111», в очередной раз порадуюсь, что уязвимость была найдена и исправлена.

Здесь нечему радоваться. Впрочем наличие уязвимостей в коде - один из самых больших недостатков открытого ПО, так что решето - всего лишь данность.

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

наличие уязвимостей в коде - один из самых больших недостатков ПО

FTFY

eternal_sorrow ★★★★★
()

обновиться всё-таки стоит

На какую версию ядра надо обновляться?

Shushundr ★★★
()

необходима программа с SUID битом, доступная злоумышленнику

То есть достаточно, чтобы такая программа имелась в системе?

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

Впрочем наличие уязвимостей в коде - один из самых больших недостатков открытого ПО

Почему только открытого?

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

Вместо того чтобы орать «РЕШЕТО!!!!1111», в очередной раз порадуюсь, что уязвимость была найдена и исправлена.

Это, разумеется, хорошо, только где в новости говорится про «исправлена»?

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

Хотя все же 2.6.32 получше будет.

В каких не совсем древних релизах дистрибутивов можно найти эти ядра?

Наверно в Slackware?

https://en.wikipedia.org/wiki/Slackware#Releases

Какой релиз Slackware самый ламповый в плане приятной версии ядра с минимум закладок в виде случайных дыр?

Еще бы GrSec в комплекте, есть такое?

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

Вместо того чтобы орать «РЕШЕТО!!!!1111», в очередной раз порадуюсь, что уязвимость была найдена и исправлена.

И в очередной раз добавлено еще несколько уявзимостей ? :)

sanyo1234
()
Ответ на: комментарий от forth32

Достаточно, чтобы злоумышленник мог её выполнить. Например, если злоумышленник поломал апач и получил права пользователя www-data, но пользователь www-data не может выполнить ни одной SUID-ной программы, то эксплуатировать уязвимость злоумышленник не сможет. А если поломал обычного пользователя, которому доступны su, sudo, passwd или что-то другое, то сможет.

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

А вот был бы раст а не сишечка, не было бы такого.

Это с какого бодуна? В расте память после использования магическим образом затирается? И без оверхеда?

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

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

no-dashi-v2 ★★
()

А было бы ядро написано на rust - то такой ошибки бы не было.

rekket
()

Атаки типа use-after-free достаточно сложны в исполнении и не гарантируют стабильный результат, однако обновиться всё-таки стоит.

То есть, эксплойтов под эту уязвимость нет?

Mischutka ★★★★★
()

интересо…проводили ли сравнения кто добавлял данные частки кода, приводящие к данному…вполне могут быть ведь и руки неких структур, как и оф так и не оф.

vovagubin1987
()
Ответ на: комментарий от Anoxemian

И сборка б шла не пару минут а несколько дней

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

Слишком толсто. Уязвимости неоднократно и в закрытом ПО находили, и да, случаи, когда их обнаруживали уже после начала эксплуатации преступниками тоже были.

Vsevolod-linuxoid ★★★★★
()
Ответ на: комментарий от windows10

Забавно, мне вталкивали обратное: в свободном ПО меньше уязвимостей так как сообщество вовлечено в их поиски. С проприетарным софтом дело обстоит несколько иначе. Они же там дружат со всякими крупными компаниями разрабатывающими антивирусники, не так ли?

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

Откатился на всякий случай на 2.4

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

В расте память после использования магическим образом затирается?

да

Насколько я понял, это делается в drop, то есть вручную. Если не сделать, то никто ничего не обнуляет. Пример:

/// Example: u32 newtype, set to 0 when freed
pub struct ZU32(pub u32);

impl Drop for ZU32 {
    fn drop(&mut self) {
        println!("zeroing memory");
        unsafe{ ::std::ptr::write_volatile(&mut self.0, 0) };
    }
}

fn main() {
{
    let i = ZU32(42);
    // ...
} // i is freed here
}

Отсюда

her_s_gory
()

однако обновиться всё-таки стоит

too fat

Sahas ★★★★☆
()

Ну кто-то опять забыл про kfree_sensitive... Скучно-с...

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

Действительно. Какой-то я недогадливый сегодня…

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

Почему только открытого?

Потому что у закрытого ПО кода нет. Уязвимости там можно находить лишь эмпирическим методом по мере работы с самой программой.

В случае с открытым ПО, его можно даже не ставить - код прошерстил, неправильный if заметил - и готово.

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

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