В ядре Linux обнаружена новая уязвимость
Bad Epoll (CVE-2026-46242), позволяющая обычному пользователю без специальных прав получить полный контроль над машиной в качестве root-пользователя.
Она затрагивает настольные компьютеры
Linux, серверы и устройства
Android, и уже выпущено исправление.
Bad Epoll находится в том же небольшом участке кода ядра, где недавно была обнаружена другая ошибка в
Anthropic Mythos.
ИИ обнаружил одну уязвимость, но пропустил эту, однако исследователь
Чжэён Чон все же
обнаружил её и представил реально работающую атаку.
Epoll - это стандартная функция
Linux, позволяющая программе отслеживать множество файлов или сетевых подключений одновременно. Серверы, сетевые службы и веб-браузеры - все они используют её.
Bad Epoll - это ошибка «использование памяти после освобождения». Главная загвоздка в тайминге. Окно, где пересекаются два пути, имеет ширину всего около шести машинных инструкций, поэтому случайная попытка почти никогда не попадает в него.
Эксплойт расширяет это окно и повторяет попытки без сбоя, достигая корневого узла примерно в 99% случаев на протестированных системах.
При этом процесс можно активировать изнутри песочницы рендеринга
Chrome, которая блокирует почти все остальные ошибки ядра, чего не могут сделать большинство уязвимостей, связанных с привилегиями в
Linux.
Пока никаких признаков того, что она использовалась в реальных атаках, не обнаружено: она не включена в список известных эксплуатируемых уязвимостей
CISA, а единственный работающий код - это PoC, представленный в рамках
kernelCTF. Разработка версии для
Android все еще продолжается.
Обе ошибки связаны с одним изменением в коде
epoll, внесенным в 2023 году.
Чанг полагает, что
Mythos обнаружила первую из двух ошибок, которая теперь отслеживается как CVE-2026-43074, а исправление было выпущено в начале 2026 года.
Anthropic отдельно сообщила об
уязвимостях, приводящих к повышению привилегий в ядре
Linux, хотя публично не связывала эту работу с
Bad Epoll. Обнаружение первой такой уязвимости стало реальным результатом, поскольку ошибки, связанные с состоянием гонки, как известно, очень трудно обнаружить.
Почему же тот же самый
ИИ пропустил ошибку, связанную с наличием «родственных» элементов,
Чанг связывает с двумя вероятными причинами, но не уверен на 100%.
Во-первых, временной интервал очень мал, поэтому точную последовательность событий трудно представить, даже просто глядя на код. Во-вторых, на этапе выполнения программы имеется мало подтверждающих данных.
После исправления первой ошибки ошибка памяти
Bad Epoll обычно не срабатывает на
KASAN, основной детектор ошибок ядра, поэтому ничто не указывает на наличие проблемы.
Отключить
Epoll невозможно, поэтому обходного пути нет. Следует применить коммит
a6dc643c6931 из основного репозитория или установить бэкпорт дистрибутива, когда он появится. Ядра, собранные на версиях 6.4 или новее, затронуты, если в них еще не установлено исправление.
Более старые ядра на базе версии 6.1, включая некоторые телефоны
Android, такие как
Pixel 8, не поддерживаются, поскольку ошибка появилась в версии 6.4.
Таким образом,
Bad Epoll пополнил известное семейство ошибок ядра, используемых для получения root-прав на
Android, вслед за более ранними ошибками
Bad Binder, Bad IO_uring и Bad Spin.
Обсуждение 0
Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.
Обсудить в Telegram