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

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

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-устройствах.

Репозиторий
50644327 дней назадПроверено Kitploit

Популярное

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

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

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

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

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

Bad Epoll: баг, пропущенный Mythos

Bad Epoll exploit running: an unprivileged process escalating to 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, где за эксплойт для ядра Linux выплачивается вознаграждение от $71,337+. Заявка Bad Epoll получила вознаграждение в размере $92,337.

[!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, с подробностями в публичном отчёте Anthropic, ANT-2026-CM0TCREP. Этот результат впечатляет сам по себе, поскольку баги состояния гонки в ядре известны своей сложностью для обнаружения. Он продемонстрировал способность передовой ИИ-модели находить баги состояния гонки. Независимый исследователь позже отправил 1-day эксплойт для него в kernelCTF.

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

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

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

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

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

[!NOTE] Независимые исследователи Qi Tang и Junxi Qian также сообщили о CVE-2026-43074 команде ядра Linux 30 марта 2026 года, в тот же день, что и Anthropic. Их имена были непреднамеренно пропущены в списке благодарностей за upstream-исправление. Спасибо Guidong Han за указание на эти независимые отчёты. Позже эти три исследователя обнаружили ещё один use-after-free, вызванный состоянием гонки, в epoll.


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

Вот высокоуровневый обзор атаки для любопытных.

ep_waiter watches ep_target: the epoll structures behind the bug

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

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

The close-vs-close race window and how the exploit drives it through a timer interrupt

Окно гонки и то, как эксплойт его использует.

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

Arbitrary kernel read: a dangling struct file backed by a pipe leaks kernel addresses through /proc/self/fdinfo

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

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

Скачать инструмент