이 결함은 두 개의 커널 헬퍼 함수(xfs_reflink_fill_cow_hole, xfs_reflink_fill_delalloc)의 경쟁 조건에서 비롯됩니다 . 이 함수들이 트랜잭션을 획득하기 위해 XFS inode 잠금(ILOCK)을 순환(cycle)할 때, 데이터 포크(data fork)와 CoW 포크 모두에 대한 매핑 정보가 최신성이 떨어질(stale) 수 있습니다 . CoW 포크 매핑은 xfs_find_trim_cow_extent를 통해 갱신되지만, 데이터 포크 매핑은 다음 쓰기 작업 전에 갱신되지 않습니다 . 이 간과로 인해 동시성 쓰기가 카피-온-라이트 과정을 완전히 우회하고, 공격자가 접근 권한이 없어야 할 공유 데이터 블록을 직접 수정할 수 있게 됩니다 .
로컬에서 권한이 없는 계정을 가진 공격자는 이를 이용해 읽을 수 있는 모든 파일을 덮어쓸 수 있습니다. 여기에는 /etc/passwd, /etc/shadow, SSH authorized_keys 같은 보호된 시스템 파일이 포함됩니다. 이 공격은 SELinux가 강제(Enforcing) 모드로 실행 중인 시스템에서도 작동합니다 . 결정적으로, 이렇게 디스크에 쓰여진 내용은 시스템 재부팅 후에도 유지됩니다 .
이 취약점은 리눅스 커널 4.11(2017년 2월)의 커밋 3c68d44a2b49에서 처음 도입되었으며, 그 이후의 모든 메인라인 및 안정 커널에 존재합니다 . 공격이 성립하려면 대상 XFS 파일시스템에 reflink 기능이 활성화되어 있어야 합니다. reflink는 2019년부터 mkfs.xfs의 기본 설정이므로, 최신 XFS 볼륨 대부분이 영향을 받습니다 .
Qualys와 CERT-EU에 따르면, 다음 배포판에서 취약점이 직접 확인되었습니다 :
영향 범위에 속하는 커널을 사용하는 다른 배포판(Debian, Arch Linux, Rocky Linux, AlmaLinux, 임베디드 리눅스 빌드 등)도 암묵적으로 취약합니다 .
즉각적인 커널 패치가 유일하게 신뢰할 수 있는 해결 방법입니다. 의미 있는 우회 방법은 없습니다. 이 취약점은 비기본 설정을 필요로 하지 않으며, SELinux로 차단할 수 없고, 공격 중에 커널 로그 출력을 남기지 않습니다 . 유일한 부분적 완화 방법은 패치가 완료될 때까지 영향을 받는 시스템에서 XFS 파일시스템에 대한 직접 I/O(direct-I/O) 쓰기 접근을 제한하는 것입니다 .
업스트림 커널 패치는 2026년 7월 16일에 병합되었습니다(커밋 2f4acd0: "xfs: resample the data fork mapping after cycling ILOCK") . 이 패치는 ILOCK 순환 과정에서 시퀀스 카운터가 변경될 때 데이터 포크 매핑을 다시 샘플링(resample)하여, 최신성이 떨어진 매핑이 다음 쓰기에 사용되지 않도록 합니다 .
영향을 받는 리눅스 시스템을 사용하는 조직은 즉시 벤더 보안 업데이트를 적용하고 재부팅하여 패치된 커널이 활성화되도록 해야 합니다 . 이 취약점은 매우 넓은 설치 기반을 가지고 있고 특별한 권한 없이도 안정적으로 악용될 수 있기 때문에, 멀티테넌트 또는 사용자 공유 리눅스 환경에서 심각한 위험 요소입니다.