
A C-based Linux security utility for detecting, safely verifying (Proof of Concept), and mitigating CVE-2026-64600 (RefluXFS). It provides kernel vulnerability assessment, XFS reflink detection, a safe race-condition PoC, and layered mitigation using SystemTap and XFS hardening.
이 저장소는 XFS 파일시스템을 실행하는 Linux 시스템에서 RefluXFS 취약점(CVE‑2026‑64600)을 탐지하고, 안전하게 검증하며, 완화하는 포괄적인 C 유틸리티를 제공합니다. 이 도구는 취약한 커널을 확인하고, reflink가 활성화된 XFS 마운트를 식별하며, 선택적으로 안전한 레이스 트리거를 시도하고, 필요 시 2계층 완화(SystemTap 프로브 + reflink=0 리마운트)를 적용합니다.
⚠️ 고지 사항: 이 도구는 승인된 보안 평가 및 시스템 강화 목적으로만 제공됩니다. 소유한 시스템이나 테스트에 대한 명시적 허가를 받은 시스템에서만 사용하십시오. 작성자는 오용에 대해 어떠한 책임도 지지 않습니다.
CVE-2026-64600(RefluXFS)은 Linux 커널의 XFS 파일시스템, 특히 reflink 파일의 쓰기 시 복사(CoW) 경로(커널 4.11에서 도입)에서 발생하는 높은 심각도의 레이스 컨디션입니다. 권한이 없는 로컬 공격자가 보호된 파일에 대해 reflink 클론에서 동시 O_DIRECT 쓰기를 경쟁시켜 동일한 XFS 볼륨의 임의 파일을 손상시키거나 덮어쓸 수 있습니다. 손상은 블록 계층에서 발생하며, 재부팅 후에도 유지되고 커널 로그에 흔적을 남기지 않습니다.
영향을 받는 커널: Linux 4.11부터 수정 버전까지:
영향: 루트로의 로컬 권한 상승, 영구적인 데이터 손상, setuid 바이너리 또는 중요 파일의 조용한 덮어쓰기.
이 도구는 다음을 구현합니다:
/proc/mounts 확인).-m fix 사용 시):
FICLONE 및 copy_file_range 시스템 콜을 가로채 -EOPNOTSUPP를 반환합니다.reflink=0으로 리마운트를 시도합니다(심층 방어).-c) – 시스템이 취약한 경우에만 임의 명령(예: id)을 실행합니다.-m exploit).reflink=0으로 리마운트합니다(-m fix, 루트 권한 필요).--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"
$ ./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
────────────────────────────────────────────────────────────────────
FINAL VERDICT
────────────────────────────────────────────────────────────────────
┌──────────────────────────────────────────────────────────────────────┐
│ SAFE: kernel not vulnerable and no XFS reflink found │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 5.15.0-91-generic (not vulnerable)
XFS reflink: not detected
System appears secure against CVE-2026-64600
────────────────────────────────────────────────────────────────────
$ ./cve-2026-64600
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: check │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 6.12.0-rc2
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable YES
XFS Reflink (any mount) DISABLED
Distribution Affected (heuristic) YES
A vulnerable kernel was detected. Show remediation advisory? [y/n]: n
────────────────────────────────────────────────────────────────────
FINAL VERDICT
────────────────────────────────────────────────────────────────────
┌──────────────────────────────────────────────────────────────────────┐
│ PARTIAL: vulnerable kernel, but no XFS reflink found │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 6.12.0-rc2 (vulnerable)
XFS reflink: not detected
Recommendation: still consider kernel update as precaution
────────────────────────────────────────────────────────────────────
$ sudo ./cve-2026-64600 -m fix
┌──────────────────────────────────────────────────────────────────────┐
│ CVE-2026-64600 (RefluXFS) — Mode: fix │
└──────────────────────────────────────────────────────────────────────┘
─── System Information ───
Kernel 6.12.0-rc2
Architecture x86_64
─── Vulnerability Assessment ───
Kernel Vulnerable YES
XFS Reflink (any mount) ENABLED
Distribution Affected (heuristic) YES
--- Mitigation Deployment ---
Layer 2/2: mount-level hardening (remount reflink=0)
Remounted /mnt/xfs with reflink=0
Layer 1/2: syscall-level block (SystemTap probe)
Status DEPLOYED (SystemTap)
Log: /var/log/refluxfs-block.log
Stop: sudo pkill -f 'stap.*refluxfs-block'
Verify: cp --reflink=always /etc/passwd /tmp/test 2>&1 | grep -q 'Operation not supported'
Status MITIGATION ACTIVE (both layers)
--- FINAL VERDICT ---
┌──────────────────────────────────────────────────────────────────────┐
│ CONFIRMED VULNERABLE (race triggered) │
└──────────────────────────────────────────────────────────────────────┘
Kernel: 6.12.0-rc2 (vulnerable)
XFS reflink: enabled
Distribution: affected
안전한 환경에서 이 도구를 테스트하려면 reflink=1로 생성된 XFS 파티션이 있는 Linux VM을 설정할 수 있습니다. 예를 들어:
# Create a loop device with an XFS filesystem (reflink enabled)
dd if=/dev/zero of=/tmp/xfs.img bs=1M count=1024
mkfs.xfs -m reflink=1 /tmp/xfs.img
sudo mount -o loop /tmp/xfs.img /mnt/xfs
그런 다음 마운트된 경로(-p /mnt/xfs)에서 도구를 실행하여 탐지 및 완화를 테스트합니다.
이 프로젝트는 GNU General Public License v3.0에 따라 라이선스가 부여됩니다 – 자세한 내용은 LICENSE 파일을 참조하십시오.
이슈와 풀 리퀘스트를 환영합니다. 기여 시 동일한 기능을 유지하고 윤리적 사용 지침을 준수해 주십시오.
기억하세요: 보안 도구를 테스트하기 전에 항상 적절한 승인을 받으십시오. 윤리적이고 책임감 있게 행동하십시오.
| 옵션 | 설명 |
|---|
-h, --help | 도움말 메시지를 표시하고 종료합니다. |
-v, --verbose | 상세 출력(파싱된 커널 버전 세부 정보 표시). |
-p <path> | 특정 마운트 지점의 XFS reflink 상태를 확인합니다. |
-m, --mode <mode> | 작동 모드: check(기본값), exploit, auto, fix. |
-c, --cmd <command> | 시스템이 취약한 경우에만 사용자 지정 명령을 실행합니다(기본값: id). |
--dry-run | 완화 작업을 적용하지 않고 미리 봅니다(-m fix와 함께 사용). |
--force | 조건이 충족되지 않아도 완화 배포를 강제합니다(실습/데모용). |
| 모드 | 설명 |
|---|
check | 수동 탐지 – 커널 버전, XFS reflink 상태 및 배포판 휴리스틱을 보고합니다. 어떠한 작업도 수행하지 않습니다. |
exploit | 시스템이 취약한 경우에도 안전한 레이스 검증(PoC)을 실행합니다. 완화는 적용하지 않습니다. |
auto | 시스템이 취약하면 안전한 레이스 검증을 실행하고, 그렇지 않으면 탐지만 수행합니다. |
fix | 계층형 완화를 적용합니다(루트 권한 필요). SystemTap 프로브를 배포하고 XFS를 reflink=0으로 리마운트를 시도합니다. 커널이 취약하고 XFS reflink가 활성화된 경우에만 적용합니다(--force 사용 시 제외). |