Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
bad-epoll — Эксплойт для повышения привилегий в ядре Linux, эксплуатирующий CVE-2026-46242 (race-condition use-after-free в epoll), с 99% надёжным получением root на настольных компьютерах, серверах и Android-устройствах. | Kitploit
Инструменты/GitHubGitHub/j-jaeyoung/bad-epoll
Безопасность AndroidПовышение привилегийАнализ уязвимостейЭксплуатацияCTFОбучение и ОбразованиеЭксплуатация Бинарных Файлов
GitHubj-jaeyoung/bad-epoll

bad-epoll

Эксплойт для повышения привилегий в ядре Linux, эксплуатирующий CVE-2026-46242 (race-condition use-after-free в epoll), с 99% надёжным получением root на настольных компьютерах, серверах и Android-устройствах.

Репозиторий
5064432 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Bad Epoll: баг, который пропустил Mythos

Работа эксплойта Bad Epoll: непривилегированный процесс повышает привилегии до root

Непривилегированный процесс повышает привилегии до root на Google kernelCTF.

Bad Epoll (CVE-2026-46242) — это use-after-free из-за состояния гонки в подсистеме epoll ядра Linux. Эта уязвимость позволяет непривилегированному процессу получить права root не только на десктопах и серверах Linux, но и на устройствах Android.

Bad Epoll была обнаружена и эксплуатирована Jaeyoung Chung как 0-day, поданный на Google kernelCTF, который выплачивает $71,337+ за эксплойт для ядра Linux.

[!NOTE] ИИ Anthropic, Mythos, нашёл ещё одну гонку в том же коде epoll, но пропустил Bad Epoll.


Почему это серьёзно

  1. Редкая уязвимость, способная дать root на Android. Большинство багов повышения привилегий в Linux вообще не способны дать root на Android. Например, Copy Fail и его варианты требуют модулей, которые Android никогда не загружает. Из примерно 130 уязвимостей, эксплуатированных на Google kernelCTF, лишь около десяти подходят для получения root на Android. Bad Epoll — одна из них.

    • Bad Epoll также можно вызвать из песочницы рендерера Chrome, которая блокирует почти все остальные баги ядра. Поэтому эксплойт рендерера можно соединить в цепочку с Bad Epoll, чтобы добиться выполнения кода в ядре, — тот же эффект, что Project Zero продемонстрировала в "From Chrome renderer code exec to kernel with MSG_OOB".
  2. Нет аварийного отключения. Copy Fail и его варианты можно нейтрализовать, выгрузив их уязвимые модули, но у epoll такой возможности нет. Это базовая функция ядра, на которую полагаются операционная система, сетевые сервисы и браузеры. Единственный способ исправить её — применить патч.

  3. Крошечное окно гонки, но атака надёжна на 99%. Окно гонки уязвимости составляет всего около шести инструкций, и обычная попытка почти никогда в него не попадает. Эксплойт расширяет это окно и выполняет цикл повторов, который никогда не приводит к падению ядра. В результате получается эксплойт с надёжностью 99%, как описано в обзоре атаки ниже.


Баг, который пропустил Mythos

Один-единственный коммит в 2023 году внёс в код epoll — всего около 2 500 строк — две отдельные гонки. Обе оказались критическими уязвимостями, способными привести к повышению привилегий.

Первую гонку нашёл Mythos от Anthropic; она получила идентификатор CVE-2026-43074. Сам по себе этот результат впечатляет, поскольку известно, что гонки в ядре находить трудно. Он показал способность передовой ИИ-модели находить гонки. Позже независимый исследователь отправил для неё 1-day эксплойт на kernelCTF.

Вторая гонка — это Bad Epoll, которую Mythos пропустил. Учитывая, что Mythos нашёл первую уязвимость в этом небольшом участке кода epoll, он, вероятно, изучал ту же область с немалой глубиной. Мы не можем точно знать, почему он её пропустил, но, скорее всего, два фактора затруднили обнаружение.

  • Окно гонки крошечное. Его ширина — всего около шести инструкций, поэтому точное чередование потоков трудно представить, даже глядя на уязвимый код.

  • Было мало динамических свидетельств. После исправления CVE-2026-43074 use-after-free в Bad Epoll обычно не вызывает срабатывания KASAN — главного детектора ошибок памяти ядра. Без такого сигнала у Mythos, возможно, не было достаточной уверенности, чтобы сообщить о ней как о реальной уязвимости.

Исправить Bad Epoll тоже было непросто. Первый патч мейнтейнеров не полностью устранял проблему, а корректный патч появился только через два месяца после первого сообщения об уязвимости. Это долгий срок для ядра, которое обычно решает проблемы безопасности оперативно.

В целом Bad Epoll показывает, насколько сложны гонки на каждом этапе. Их трудно найти даже передовой модели, трудно правильно исправить и, как показывает следующий раздел, трудно надёжно эксплуатировать. Это также подсказывает направление исследований уязвимостей, которое остаётся перспективным и при наличии передовых ИИ-моделей: выявление реального влияния на безопасность за узкими временными условиями и слабыми свидетельствами.


Как работает атака

Вот обзор атаки на высоком уровне — для тех, кому интересно.

ep_waiter следит за ep_target: структуры epoll, стоящие за уязвимостью

Два связанных объекта epoll. Одновременное закрытие обоих запускает гонку.

Два пути закрытия epoll выполняются одновременно и сталкиваются. Один освобождает объект, пока другой всё ещё пишет в него, — это и есть use-after-free (UAF).

Окно гонки «закрытие против закрытия» и то, как эксплойт управляет им через прерывание таймера

Окно гонки и то, как эксплойт им управляет.

Эксплойт использует четыре объекта epoll, сгруппированных в две пары. Одна пара запускает гонку, а другая становится жертвой. Далее эксплойт превращает 8-байтовую UAF-запись в UAF на файловом объекте и с помощью cross-cache атаки получает полный контроль над содержимым файла.

Произвольное чтение ядра: висячий struct file на основе pipe раскрывает адреса ядра через /proc/self/fdinfo

Превращение уязвимости в произвольное чтение памяти ядра через /proc/self/fdinfo.

Обладая таким контролем, эксплойт получает произвольное чтение памяти ядра через /proc/self/fdinfo. Наконец, он перехватывает поток управления и выполняет ROP-цепочку, чтобы получить root-шелл.

Больше подробностей доступно в полном разборе и коде эксплойта.


Устранение

Поскольку epoll нельзя отключить, у Bad Epoll нет простого обходного пути. Единственное решение — применить патч.

  • Примените апстрим-коммит a6dc643c6931, или бэкпорт вашего дистрибутива, как только он станет доступен.

Затронутые версии

Bad Epoll была внедрена коммитом 58c9b016e128 (2023-04-08) и исправлена коммитом a6dc643c6931 (2026-04-24).

Многие дистрибутивы Linux могут быть затронуты, если они используют ядра на основе v6.4 или новее и ещё не перенесли исправление. Проверьте обновления безопасности ядра вашего дистрибутива на предмет бэкпорта указанного выше исправляющего коммита. Более старые ядра на основе v6.1 не затронуты, поскольку уязвимость была внедрена в v6.4.

Текущий эксплойт написан для следующих целей Google kernelCTF.

  • lts-6.12.67 (LTS), надёжность 99%
  • cos-121-18867.294.100 (COS), надёжность 98%

Эксплойт для Android всё ещё в разработке.

  • Pixel 10 (ядро v6.6+): текущий PoC вызывает UAF, полный root-эксплойт в разработке. Мы выпустим Android-эксплойт и разбор, как только они будут готовы.
  • Pixel 8 и другие устройства на основе v6.1: не затронуты, поскольку уязвимость была внедрена в v6.4.

Хронология


FAQ

Почему она называется "Bad Epoll"?

Название продолжает серию "Bad" — багов ядра, дающих root на Android. К более ранним представителям относятся Bad Binder, Bad IO_uring и Bad Spin. Bad Epoll — аналог для epoll.

Где можно найти технические подробности?

Эта страница — краткая версия. Полный анализ первопричины, разбор эксплойта и код эксплойта вы найдёте по следующим ссылкам.

  • Разбор первопричины
  • Разбор эксплойта
  • Код эксплойта

Благодарности

Bad Epoll была обнаружена и эксплуатирована Jaeyoung Chung.

Огромное спасибо нашей исследовательской группе, CompSec Lab, и особенно Eulgyu Kim, Woohyuk Choi, Dae R. Jeong и моему научному руководителю Byoungyoung Lee, за их руководство и поддержку.

Скачать инструмент
ДатаСобытие
2023-04-08Уязвимость была внедрена в epoll (коммит 58c9b016e128).
2026-02-17Мы сообщили об уязвимости на [email protected].
2026-02-17Мейнтейнеры предложили прототип патча, но это не было корректным исправлением, и обсуждение затем застопорилось.
2026-04-02Исправление уязвимости, найденной Mythos (CVE-2026-43074), попало в mainline.
2026-04-22Мы повторно сообщили об оставшейся проблеме.
2026-04-24Исправление этой уязвимости попало в mainline (коммит a6dc643c6931).