Уязвимость в XFS-файловой системе ядра Linux: состояние гонки позволяет локальному пользователю получить root-права

linux

Исследователи Qualys Threat Research Unit (TRU) обнаружили в ядре Linux состояние гонки, затрагивающее механизм копирования при записи (copy-on-write) в файловой системе XFS. Уязвимость CVE-2026-64600 даёт возможность обычному локальному пользователю без каких-либо привилегий перезаписывать защищённые файлы на диске и получать права суперпользователя на атакуемой системе. Проблема затронула все дистрибутивы, использующие XFS с включённым reflink (механизм копирования блоков на основе ссылок) в корневой файловой системе - по оценке Qualys, речь идёт о более чем 16,4 миллиона систем по всему миру.

Уязвимость CVE-2026-64600

Ошибка существует в ядре начиная с версии 4.11, выпущенной в 2017 году. Она возникает, когда два одновременных прямых ввода-вывода с флагом "O_DIRECT" направляются на один и тот же файл, использующий reflink. При обработке записи XFS выделяет новый приватный блок, переназначает на него файл и уменьшает счётчик ссылок исходного блока. Чтобы избежать взаимной блокировки, ядро временно снимает блокировку индексного дескриптора (inode lock) в ожидании места в журнале транзакций. В этот промежуток второй поток завершает свой цикл копирования, переназначая файл на другой блок и уменьшая счётчик ссылок исходного до единицы. Когда первый поток восстанавливает блокировку, он повторно проверяет счётчик, используя уже устаревший физический адрес блока. Увидев значение "1", он ошибочно заключает, что блок стал приватным, и выполняет запись напрямую в исходный физический блок файла. Поскольку "O_DIRECT" обходит кеш страниц ядра и не проверяет актуальность данных, запись сохраняется на диске. Изменения переживают перезагрузку системы, не оставляют записей в журнале ядра и обходят стандартные проверки метаданных файлов.

Разработанный Qualys прототип эксплойта (proof-of-concept) надёжно получает root-права, модифицируя, например, файл "/etc/passwd" или SUID-бинарные файлы. Уязвимость затрагивает дистрибутивы, где XFS установлена по умолчанию с включённым reflink: Red Hat Enterprise Linux (8, 9, 10), CentOS Stream (8, 9, 10), Oracle Linux (8, 9, 10), Rocky Linux и AlmaLinux (8, 9, 10), CloudLinux (8, 9, 10), Amazon Linux 2023 и Amazon Linux 2 AMI начиная с декабря 2022 года, а также Fedora Server 31 и новее. Debian, Ubuntu и SUSE не используют XFS по умолчанию, но становятся уязвимы, если администратор выбрал XFS при установке и включил reflink.

Особенность CVE-2026-64600 в том, что стандартные механизмы защиты операционной системы не способны её остановить. Ошибка находится на уровне выделения блоков файловой системы - ниже того уровня, где работают средства контроля памяти, контейнерная изоляция и политики SELinux. KASLR, SMEP, SMAP, kernel lockdown, seccomp-профили - ни один из этих барьеров не затрагивает путь эксплуатации. В ходе тестирования SELinux, работающий в режиме Enforcing, также не блокировал атаку. Временные меры вроде изоляции в контейнерах или ограничения возможностей пользователя через пространства имён неэффективны, поскольку уязвимость использует штатные механизмы файловой системы.

Qualys присвоил уязвимости статус чрезвычайного приоритета (emergency priority). Эксплуатация не требует специальных возможностей, атака выполняется из-под обычной учётной записи, надёжна и не оставляет следов в логах. Производители дистрибутивов уже выпустили исправленные версии ядра. Разработчики рекомендуют немедленно установить обновление и выполнить полную перезагрузку системы - это единственный надёжный способ устранения. На данный момент не существует практичных временных обходных путей или конфигурационных изменений, которые бы блокировали атаку.

Обнаружение CVE-2026-64600 стало результатом совместного исследования Qualys и компании Anthropic. В рамках проекта Project Glasswing исследователи использовали модель искусственного интеллекта Claude Mythos Preview для автоматизированного анализа кода ядра. Специалисты Qualys задавали модели задачу поиска состояния гонки, аналогичного уязвимости Dirty COW, в подсистемах управления памятью и файловых систем. После нескольких итераций модель указала на фрагмент в XFS и сгенерировала работающий прототип эксплойта. Затем исследователи вручную верифицировали каждый технический вывод, воспроизвели атаку и скоординировали раскрытие с мейнтейнерами ядра. Такой подход - сочетание автоматизированного поиска с экспертной проверкой - позволил выявить сложную ошибку, которая оставалась незамеченной восемь лет.

Разработчики ядра Linux уже включили патч в основные и стабильные ветки. Исправления также бэкпортированы в дистрибутивы. Организациям следует в первую очередь обновить системы, доступные извне, и мультитенантные окружения, где риск эксплуатации особенно высок. После установки обновления необходима перезагрузка для применения нового ядра.

Этот случай подтверждает, что современные методы анализа кода, включая применение генеративных моделей, способны ускорить поиск уязвимостей, но окончательная верификация и ответственное раскрытие остаются за специалистами. Проблема также подчёркивает, что даже широко используемые механизмы защиты - от изоляции контейнеров до SELinux - могут оказаться бессильны, если уязвимость лежит в нижних слоях операционной системы. Единственным надёжным ответом остаётся своевременное управление исправлениями, что требует постоянного мониторинга состава активов и приоритезации обновлений.

Ссылки

 

Комментарии: 0