Баг Dirty Pipe в Linux-ядре позволяет записать данные в read-only файлы

Баг Dirty Pipe в Linux-ядре позволяет записать данные в read-only файлы

Баг Dirty Pipe в Linux-ядре позволяет записать данные в read-only файлы

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

Проблема в безопасности получила имя «Dirty Pipe» и идентификатор CVE-2022-0847 (7,8 балла по шкале CVSS). Как объяснил Макс Келлерманн, разработчик софта из IONOS, уязвимость «приводит к повышению привилегий, поскольку процесс с низкими правами может внедрить код в root-процессы».

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

Брешь затрагивает версии ядра Linux, начиная с 5.8 и чем-то похожа на другой баг — «Dirty Cow» (CVE-2016-5195), о котором говорили в октябре 2016 года.

«Уязвимость существует из-за отсутствия корректной инициализации в функциях copy_page_to_iter_pipe и push_pipe в ядре Linux. Непривилегированный локальный пользователь может использовать дыру для записи в страницы, находящиеся в кеше с файлами, доступными только на запись. В результате условный злоумышленник может повысить права в системе», — пишут представители Red Hat.

Эксплуатация Dirty Pipe подразумевает создание конвейера (pipeline) и наполнение его произвольными данными. После этого атакующий должен опустошить конвейер, соединить данные из целевых read-only файлов и записать произвольные данные в пайп. Келлерманн подготовил демонстрационный эксплойт (proof-of-concept, PoC).

По словам эксперта, с помощью PoC атакующий может, например, удалить пароль root-пользователя из /etc/passwd или добавить SSH-ключи для удалённого доступа. Уязвимость устранили в версиях Linux 5.16.11, 5.15.25 и 5.10.102.

В Linux и Android нашли баг, который даёт обычному пользователю root-доступ

В ядре Linux раскрыли уязвимость Bad Epoll, она же CVE-2026-46242. Баг позволяет обычному локальному пользователю без особых прав подняться до root и получить полный контроль над системой. Под ударом Linux-десктопы, серверы и Android-устройства на затронутых версиях ядра. Патч уже выпущен.

Проблема сидит в epoll — стандартном механизме Linux, который помогает программам следить сразу за множеством файлов, соединений и событий. Его используют серверы, сетевые сервисы и браузеры.

Bad Epoll относится к классу use-after-free: две части системы одновременно пытаются прибраться за одним внутренним объектом. Одна уже освобождает память, другая всё ещё в неё пишет.

В этот микроскопический момент атакующий может испортить память ядра и залезть туда, куда обычным пользователям вход запрещён.

 

Фокус в том, что окно для атаки крошечное — около шести машинных инструкций. Казалось бы, шанс попасть туда почти нулевой. Но исследователь Джэён Чон не только нашёл баг, а ещё и собрал рабочий эксплойт: на тестовых системах он получал root примерно в 99% случаев. Уязвимость он отправил в Google kernelCTF как 0-day.

 

Есть и неприятный бонус: по данным исследователя, баг можно триггерить из песочницы Chrome, а также довести до Android — туда добирается далеко не каждая Linux-уязвимость.

Обходного пути нет: epoll нужен системе. Затронуты ядра на базе 6.4 и новее без исправления; старые 6.1-based сборки, включая часть Android-устройств, не уязвимы.

RSS: Новости на портале Anti-Malware.ru