Уязвимость получила название RefluXFS. Её обнаружили специалисты подразделения Qualys Threat Research Unit (TRU). Проблема затрагивает системы, которые используют файловую систему XFS с включённой функцией reflink – такая конфигурация применяется по умолчанию в крупных корпоративных дистрибутивах Linux.
Условия для эксплуатации
Для атаки необходимо, чтобы:
- система работала на ядре Linux версии 4.11 или новее;
- непривилегированный локальный пользователь имел доступ на запись хотя бы к одному каталогу;
- в системе присутствовала конкретная цель – например, принадлежащий root конфигурационный файл или SUID-бинарный файл с правами root.
Стандартные механизмы защиты не предотвращают атаки RefluXFS: модуль безопасности SELinux, режим блокировки ядра (lockdown), средства изоляции контейнеров, а также технологии защиты памяти KASLR, SMEP и SMAP. Причина в том, что уязвимость работает на уровне распределения пространства файловой системы – ниже уровня, на котором действуют перечисленные средства защиты.
По данным Qualys, эксплуатация отличается высокой надёжностью, не оставляет записей в журнале ядра, а внесённые на диск изменения сохраняются даже после перезагрузки системы.
Как работает атака
Команда Qualys TRU в техническом отчёте, опубликованном 22 июля, пояснила:
Злоумышленник создаёт reflink-копию целевого файла – например,
/etc/passwdили SUID-бинарного файла с правами root, такого как/usr/bin/su, – во временный файл, которым он владеет, а затем запускает конкурирующие операции записи O_DIRECT в этот файл.Из-за окна гонки, возникающего при временном снятии блокировки в механизме copy-on-write ядра, одна из операций записи может попасть не в область хранения, принадлежащую атакующему, а в физический блок, который по-прежнему используется исходным файлом. Изменение вносится непосредственно на диск, сохраняется после перезагрузки, не оставляет записей в журнале ядра и не затрагивает inode целевого файла. Поэтому изменённый SUID-бинарный файл сохраняет установленный SUID-бит.
История уязвимости
RefluXFS существует начиная с версии ядра Linux 4.11. Она появилась в феврале 2017 года после добавления коммита 3c68d44a2b49 и с тех пор присутствовала во всех основных и стабильных ветках ядра. Проблему исправили 16 июля, после того как коммит 2f4acd0 был включён в исходный код ядра Linux.
Затронутые дистрибутивы
- Red Hat Enterprise Linux (RHEL)
- Oracle Linux
- Amazon Linux
- Fedora
- CentOS Stream
- Rocky Linux
- AlmaLinux
- CloudLinux
По оценке Qualys, основанной на анализе с помощью платформы Cybersecurity Asset Management, потенциально уязвимыми являются более 16,4 миллиона систем.
Роль ИИ в обнаружении
Руководитель подразделения Qualys Threat Research Unit Саид Аббаси (Saeed Abbasi) сообщил, что обнаружить проблему удалось в рамках совместного исследовательского проекта Qualys и Anthropic. В ходе работы специалисты интегрировали ИИ-модель Claude Mythos Preview в процесс ручного аудита безопасности.
Перед моделью поставили задачу найти состояние гонки, похожее на уязвимость класса Dirty COW. После серии итераций модель обнаружила ошибку в файловой системе XFS и смогла создать работоспособный прототип эксплойта. Затем специалисты Qualys проверили выводы, самостоятельно воспроизвели атаку и подтвердили все технические детали, после чего уведомили разработчиков ядра Linux об уязвимости.
Рекомендации
Аббаси отметил:
Мы рекомендуем незамедлительно установить обновления ядра, чтобы устранить эту уязвимость. Эксплуатация стабильно работает даже при использовании стандартных механизмов защиты, а изменения, внесённые на диск, сохраняются после перезагрузки системы.
Производители уже выпустили исправленные версии ядра, а также начали переносить исправления в корпоративные дистрибутивы Linux. Организациям следует в первую очередь установить обновления на системы, доступные извне, и многопользовательские серверы, а затем обязательно перезагрузить их, чтобы убедиться, что обновление применилось. На данный момент надёжных или практически применимых временных мер защиты либо конфигурационных изменений, способных устранить эту уязвимость, не существует.
Рабочих обходных мер против RefluXFS нет. Единственная надёжная защита – установка обновлённого ядра с последующей перезагрузкой.
RefluXFS – не первая уязвимость повышения привилегий в Linux, раскрытая с начала года. Ранее исследователи сообщили о проблемах CIFSwitch, PinTheft, Copy Fail, Dirty Frag, Fragnesia, Pack2TheRoot и DirtyDecrypt/DirtyCBC.