Исследователи в области кибербезопасности раскрыли подробности новой уязвимости в ядре Linux, получившей название Copy Fail и идентификатор CVE-2026-31431 с оценкой CVSS 7.8. Ошибка позволяет локальному пользователю без повышенных прав получить полный доступ уровня root практически на любой современной системе Linux.
Суть уязвимости Copy Fail в ядре Linux
Уязвимость относится к классу локального повышения привилегий (Local Privilege Escalation, LPE). По данным команд Xint.io и Theori, непривилегированный пользователь может записать четыре контролируемых байта в кэш страниц (page cache) любого читаемого файла в системе и за счет этого добиться выполнения кода от имени суперпользователя.
Проблема связана с логической ошибкой в криптографическом подсистеме ядра Linux, а именно в модуле algif_aead, обслуживающем AEAD-алгоритмы через интерфейс AF_ALG. Уязвимый код был внесен в ядро в результате коммита, сделанного еще в августе 2017 года, что объясняет широту затронутых версий и дистрибутивов.
Технические детали: page cache и AF_ALG
Page cache — это слой кеширования файлов в памяти ядра, которым совместно пользуются все процессы. Если злоумышленник может модифицировать страницу в этом кеше, он фактически меняет содержимое файла «на лету» для всех процессов, читающих эти данные.
В Copy Fail ключевую роль играет оптимизация внутри algif_aead, позволяющая странице из page cache оказаться в записываемом списке назначения (scatterlist) при выполнении криптографической операции AEAD, инициированной через сокет AF_ALG. Как отмечают исследователи, локальный процесс без прав может затем использовать системный вызов splice() для точечной записи нескольких байт в кэш страниц файла, которому он не владеет.
Эта примитивная операция записи по сути превращается в мощный инструмент: достаточно изменить несколько байт в setuid-бинаре (например, в служебной утилите, запускающейся с правами root), чтобы добиться выполнения произвольного кода с максимальными привилегиями.
Затронутые дистрибутивы и кросс-контейнерные риски
Поскольку уязвимый код присутствует в ядре Linux с 2017 года, под угрозой оказываются практически все основные дистрибутивы, выпущенные за этот период: Amazon Linux, Red Hat Enterprise Linux (RHEL), SUSE, Ubuntu и многие другие системы на базе ядра Linux.
Важно, что Copy Fail не является удалённой уязвимостью сама по себе: злоумышленнику требуется локальный доступ к системе (например, учетная запись пользователя, скомпрометированная через фишинг, уязвимый веб-сервис, слабый пароль или уязвимое приложение). Однако после получения даже минимального foothold-а, эксплойт позволяет за один шаг перейти от обычного пользователя к полному контролю над системой.
Особую опасность представляет кросс-контейнерное влияние: кэш страниц ядра разделяется между всеми контейнерами и хостом. Это означает, что процесс внутри ограниченного контейнера может повлиять на бинарные файлы за его пределами, обойти sandboxing и выйти из контейнера, получив root-доступ уже на уровне хоста.
Сходство с Dirty Pipe и отличие Copy Fail
По своей природе Copy Fail напоминает известную уязвимость Dirty Pipe (CVE-2022-0847), которая также позволяла записывать данные в page cache файлов, открытых только для чтения, и тем самым перезаписывать чувствительные данные в системе.
Эксперты подчеркивают, что Copy Fail — это тот же класс примитива записи в page cache, но реализованный в ином подсистемном контексте. Если Dirty Pipe эксплуатировала ошибки в подсистеме работы с каналами (pipe), то Copy Fail опирается на изъяны в криптографическом модуле algif_aead. При этом уязвимость считается особенно опасной, так как:
- не требует сложных гонок (race condition) или подбора смещений ядра;
- эксплойт может быть реализован в виде очень короткого скрипта на Python (порядка 700 байт);
- одна и та же техника работает кросс-дистрибутивно — без существенных изменений кода;
- эксплуатация оставляет , что усложняет обнаружение инцидента.
Меры защиты и рекомендации для администраторов
После раскрытия информации об уязвимости разработчики Linux-дистрибутивов начали выпускать обновления ядра и официальные бюллетени безопасности. Администраторам рекомендуется как можно скорее:
- установить актуальные обновления ядра Linux из репозиториев поставщика (RHEL, Ubuntu, SUSE, Amazon Linux и др.);
- усилить контроль над локальным доступом к серверам и рабочим станциям, уменьшая вероятность первоначального компромета;
- провести инвентаризацию setuid-бинарей и при возможности минимизировать их количество;
- пересмотреть политику изоляции контейнеров, учитывая, что изоляция на уровне пространства имён не защищает от уязвимостей ядра.
Copy Fail наглядно демонстрирует, что даже относительно небольшая логическая ошибка в специализированном модуле ядра способна привести к масштабным последствиям — от полного захвата сервера до выхода из контейнеров и обхода песочниц. Чтобы снизить риски, критически важно своевременно устанавливать патчи безопасности, минимизировать права локальных пользователей и регулярно пересматривать архитектуру защиты Linux-инфраструктуры с учетом новых классов атак.