
Написанная на C утилита безопасности для Linux, предназначенная для обнаружения, безопасной проверки (проверки концепции) и смягчения CVE-2026-64600 (RefluXFS). Она предоставляет оценку уязвимостей ядра, обнаружение XFS reflink, безопасный PoC состояния гонки и многоуровневое смягчение с использованием SystemTap и укрепления XFS.
Этот репозиторий содержит комплексную C-утилиту для обнаружения, безопасной проверки и смягчения уязвимости RefluXFS (CVE‑2026‑64600) на Linux-системах с файловой системой XFS. Инструмент проверяет ядро на уязвимость, определяет XFS-разделы с включённым reflink, при необходимости выполняет безопасную попытку запуска гонки и разворачивает двухуровневое смягчение (SystemTap-зонд + перемонтирование с reflink=0), когда это требуется.
⚠️ Отказ от ответственности: Этот инструмент предназначен только для авторизованной оценки безопасности и укрепления систем. Используйте его только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение. Авторы не несут ответственности за неправомерное использование.
CVE-2026-64600 (RefluXFS) — это состояние гонки высокой степени серьёзности в файловой системе XFS ядра Linux, а именно в механизме копирования при записи (CoW) для reflink-файлов (появившемся в ядре 4.11). Непривилегированный локальный злоумышленник может повредить или перезаписать произвольные файлы на том же XFS-томе, создавая гонку конкурентных записей O_DIRECT в reflink-клон против защищённого файла. Повреждение происходит на блочном уровне, переживает перезагрузки и не оставляет следов в журнале ядра.
Затронутые ядра: Linux 4.11 вплоть до исправленных версий:
Воздействие: локальное повышение привилегий до root, постоянное повреждение данных, незаметная перезапись setuid-бинарников или конфиденциальных файлов.
Этот инструмент реализует:
/proc/mounts).-m fix):
FICLONE и copy_file_range на XFS, возвращая -EOPNOTSUPP.reflink=0 (защита в глубину).-c) – запуск произвольных команд (например, id) только в том случае, если система уязвима.-m exploit).reflink=0 (-m fix, требует root).--dry-run – предварительный просмотр действий по смягчению без их применения.--force – принудительное развёртывание смягчения, даже если условия не выполнены (лаборатория/демо).-v) для детальной информации о разборе.-c) – выполнение команды только в том случае, если система уязвима (по умолчанию: id).git clone https://github.com/Debajyoti0-0/CVE-2026-64600.git
cd cve-2026-64600
gcc -o cve-2026-64600 cve-2026-64600.c -lm -lpthread
Предварительные требования:
-m fix):
stap) – опционально, но рекомендуется для полного смягчения.Опционально: Если SystemTap недоступен, инструмент ограничится только усилением через перемонтирование (если это поддерживается версией XFS).
./cve-2026-64600
./cve-2026-64600 -v
./cve-2026-64600 -p /mnt/data
./cve-2026-64600 -m exploit
./cve-2026-64600 -m auto
sudo ./cve-2026-64600 -m fix
sudo ./cve-2026-64600 -m fix --dry-run
sudo ./cve-2026-64600 -m fix --force
./cve-2026-64600 -c "whoami"
./cve-2026-64600 -v -c "id"
| Опция | Описание |
|---|---|
-h, --help | Показать справочное сообщение и выйти. |
-v, --verbose | Подробный вывод (показать детали разобранной версии ядра). |
-p <путь> | Проверить статус XFS reflink на конкретной точке монтирования. |
-m, --mode <режим> | Режим работы: check (по умолчанию), exploit, auto, fix. |
-c, --cmd <команда> | Выполнить произвольную команду только в том случае, если система уязвима (по умолчанию: id). |
--dry-run | Предварительный просмотр действий по смягчению (с -m fix) без применения. |
--force | Принудительное развёртывание смягчения, даже если условия не выполнены (лаборатория/демо). |
| Режим | Описание |
|---|---|
check | Пассивное обнаружение – сообщает версию ядра, статус XFS reflink и эвристику дистрибутива. Никаких действий не выполняется. |
exploit | Запускает безопасную проверку гонки (PoC), даже если система уязвима. Смягчение не применяется. |
auto | Если система уязвима, запускает безопасную проверку гонки; в противном случае только проверяет. |
fix | Применяет многоуровневое смягчение (требуется root). Разворачивает SystemTap-зонд и пытается перемонтировать XFS с reflink=0. Применяется только в том случае, если ядро уязвимо и XFS reflink включён (если не используется --force). |
$ ./cve-2026-64600
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: check │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 5.15.0-91-generic
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable NO
XFS Reflink (any mount) DISABLED
Distribution Affected (heuristic) NO