Неудачный Epoll: ИИ компании Anthropic не обнаружил эту уязвимость на уровне кода

Исследователь в области безопасности Чжон Джеён (Jaeyoung Chung) раскрыл уязвимость ядра Linux, которая предоставляет обычному пользователю без привилегий полный контроль над системой. Уязвимость «Bad Epoll», официальный идентификатор которой — CVE-2026-46242, затрагивает настольные компьютеры и серверы под управлением Linux, а также устройства Android. Исправление уже доступно. Этот случай особенно примечателен из-за побочной истории: искусственный интеллект уже проанализировал уязвимый код, но не обнаружил данную уязвимость.
Как работает «Bad Epoll»
Уязвимость находится в подсистеме epoll — ключевой функции, позволяющей программам одновременно отслеживать множество файлов и сетевых подключений. Серверы, сетевые службы и браузеры постоянно используют её, и отключить её невозможно. «Bad Epoll» представляет собой ошибку типа «use-after-free»: два пути ядра одновременно очищают один и тот же внутренний объект — один освобождает память, в то время как другой всё ещё записывает в неё данные. Этого кратковременного конфликта достаточно для манипулирования памятью ядра и перехода с прав обычного пользователя на права root.
Ключевым моментом является синхронизация. Окно, в котором происходит конфликт обоих путей, составляет всего около шести машинных инструкций. Эксплойт Чунга расширяет это окно и продолжает попытки без сбоев, пока не получает права root на тестируемых системах примерно в 99 % случаев. Две детали делают эту уязвимость более серьёзной, чем типичные ошибки ядра: по словам Чунга, её можно запустить из песочницы рендерера Chrome, и она распространяется на Android, чего не наблюдается в случае большинства уязвимостей Linux.
Почему ИИ не обнаружил эту уязвимость
?
Обе проблемы восходят к одному изменению кода, внесённому в 2023 году, в всего лишь 2 500 строках кода epoll. Модель искусственного интеллекта Mythos от компании Anthropic обнаружила первую из двух условий гонки и зарегистрировала её как CVE-2026-43074. Это стало настоящим успехом, поскольку подобные ошибки гонки считаются труднообнаружимыми. Однако модель не обнаружила вторую уязвимость — «Bad Epoll». В конечном итоге её обнаружил исследователь Джейён Чун (Jaeyoung Chung) и разработал для неё рабочую атаку.
Чун приводит две возможные причины этого «слепого пятна», не отдавая предпочтения ни одной из них. Временное окно настолько крошечно, что точную последовательность событий трудно представить даже при изучении кода. Кроме того, после исправления первой уязвимости «Bad Epoll» обычно переставал запускать детектор ошибок памяти KASAN, в результате чего модель не получала трассировок времени выполнения. Этот случай демонстрирует обе стороны проблемы: ИИ способен находить сложные ошибки в ядре, но по-прежнему может давать сбой при обнаружении тонких условий гонки.
Кто подвержен риску и что делать
Уязвимы версии ядра начиная с 6.4, если исправление ещё не установлено. Более старые системы на базе Linux 6.1 находятся в безопасности, в том числе некоторые устройства с « Android », такие как Pixel 8, поскольку некорректный код был добавлен только после этой ветки. По словам Чунга, работа над эксплойтом « Android » продолжается. Существуют некоторые основания для оптимизма в отношении непосредственной угрозы: на данный момент нет никаких признаков атак в реальных условиях, а единственным работающим кодом является доказательство концепции из программы kernelCTF компании Google. Также важно отметить: злоумышленнику уже необходим локальный доступ к устройству, поскольку уязвимость не может быть активирована удалённо.
Пользователям, устанавливающим исправления вручную, следует применить коммит a6dc643c6931 из исходного репозитория. Всем остальным следует дождаться бэкпорта для своего дистрибутива и незамедлительно его установить. Поскольку epoll отключить невозможно, обходного пути нет — проблему устраняет только обновление.






