CVE-2026-31431 Copy Fail: уязвимость в ядре Linux, открывающая root любому пользователю

Команды исследователей из компаний и Theori обнаружили серьёзную уязвимость в ядре Linux, которой присвоен идентификатор CVE-2026-31431 и неофициальное название Copy Fail. Оценка по шкале CVSS составила 7.8, что соответствует высокому уровню опасности. Брешь относится к классу Local Privilege Escalation и позволяет обычному непривилегированному пользователю получить полные права root практически на любом дистрибутиве Linux.
CVE-2026-31431 Copy Fail: уязвимость в ядре Linux, открывающая root любому пользователю
Изображение носит иллюстративный характер

Уязвимость затрагивает криптографическую подсистему ядра, конкретно модуль algif_aead. Логическая ошибка была внесена в исходный код ещё в августе 2017 года и с тех пор незаметно присутствовала во всех основных дистрибутивах. Эксперт по безопасности Дэвид Брумли из компании Bugcrowd объяснил механизм следующим образом: оптимизация 2017 года в algif_aead позволяет странице кэша страниц оказаться в записываемом scatterlist ядра при выполнении AEAD-операции через сокет AF_ALG. После этого процесс может использовать команду splice() для небольшой, но точечной записи в кэш страниц файла, которым атакующий не владеет.
Результат этой записи предельно конкретен: злоумышленник получает возможность вписать ровно четыре контролируемых байта в page cache любого читаемого файла в системе. Четыре байта звучат незначительно, но на практике этого достаточно, чтобы испортить кэшированную копию setuid-бинарника и внедрить в неё произвольный шеллкод.
Весь эксплойт умещается в 732-байтовый Python-скрипт. Последовательность атаки состоит из четырёх шагов. Сначала открывается сокет AF_ALG и выполняется привязка к authencesn(hmac(sha256),cbc(aes)). Затем формируется полезная нагрузка с шеллкодом. После этого инициируется запись в кэшированную копию файла /usr/bin/su. Последний шаг — вызов execve("/usr/bin/su"), который загружает внедрённый шеллкод и выполняет его с правами root.
Особенность Copy Fail в том, что эксплойт работает надёжно и не требует ни гонки состояний, ни знания смещений ядра. Один и тот же скрипт без каких-либо модификаций срабатывает на разных дистрибутивах. Представитель в комментарии для The Hacker News отметил, что данная уязвимость сочетает в себе четыре свойства, которые почти никогда не встречаются вместе: она портабельна, компактна, незаметна и обладает кросс-контейнерным эффектом.
Кросс-контейнерный аспект заслуживает отдельного внимания. Поскольку page cache является общим для всех процессов в системе, атака способна выходить за пределы контейнерной изоляции. Это превращает её из локальной проблемы в потенциальный инструмент обхода sandbox-окружений, что критично для облачных сред и систем совместного использования.
Уязвимость затрагивает все дистрибутивы Linux, вышедшие начиная с 2017 года. Официальные предупреждения уже выпустили Amazon Linux, Arch Linux, CloudLinux, Debian, Gentoo, Red Hat Enterprise Linux, SUSE и Ubuntu. Удалённая эксплуатация невозможна — для атаки нужен локальный доступ к системе, однако это ограничение не делает уязвимость менее опасной в реальных сценариях: скомпрометированный непривилегированный аккаунт, взломанный контейнер или вредоносный инсайдер превращают Copy Fail в прямой путь к полному контролю над хостом.
Специалисты проводят параллель с уязвимостью Dirty Pipe, известной под номером CVE-2022-0847. Оба случая используют один и тот же класс примитива: сплайсинг данных в page cache файлов с правами только на чтение с последующей перезаписью чувствительных файлов и выполнением произвольного кода. Принципиальное отличие в том, что Copy Fail живёт в другой подсистеме ядра и оставалась незамеченной на несколько лет дольше. Учитывая, что Dirty Pipe в своё время наделала немало шума, Copy Fail по степени практической эксплуатируемости выглядит не менее, а в каком-то смысле и более тревожно — из-за своей переносимости и минимального размера эксплойта.


Новое на сайте

20868Уязвимости Plex открыли путь майнерам и Linux-бэкдору 20867Взлом OpenCode Console: под угрозой могли оказаться ключи OpenAI, Anthropic и Google 20866Rank Math PRO: заражённое обновление оставило на сайтах самовосстанавливающийся бэкдор 20865Как исследовательские модели OpenAI обходили ограничения и присваивали чужие данные 20864Атака на BeyondTrust: шпионская группа получила доступ к серверам поддержки 20863Как пакет imgdecode превращает npm-зависимость в загрузчик вредоносного кода? 20862Как PEERSTITCH обходит проверки VPN-сессий FortiOS? 20861Что происходит, когда ИИ-агент выходит за пределы тестовой среды? 20860Как 37-летняя ошибка открыла путь к root в OpenBSD 7.9? 20859ИИ-модели для SOC: точный ответ зависит от улик 20858Как одна учётная запись ConnectWise открыла доступ к 173 арендаторам Microsoft 365? 20857Пять минут до заражения: как подменили обновления AOMEI Backupper 20856Ловушка под видом регистрации: как UAT-11985 крадёт аккаунты Google 20855Может ли виртуальная машина прочитать память хоста? 20854Как дешёвые Android-смартфоны превращаются в чужие прокси?
Ссылка