Tutoriel Linux

RefluXFS: RHEL, CentOS 및 AlmaLinux에서 루트 액세스 권한을 제공하는 XFS의 심각한 취약점

Débutant2 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

리눅스 커널의 XFS 파일 시스템에서 심각한 취약점이 발견되었습니다. ‘RefluXFS’라고 명명된 이 취약점은 권한이 없는 로컬 사용자가 루트 권한을 획득할 수 있도록 허용합니다. RHEL, CentOS, AlmaLinux와 같은 배포판이 특히 영향을 받는 것으로 나타나 시스템 관리자들에게 큰 우려를 불러일으키고 있습니다.

CVE-2026-64600으로 식별되는 RefluXFS는 9년 전에 발견된 취약점을 악용합니다. 이 취약점은 XFS 파일 시스템의 reflink 기능을 이용하여 루트 사용자의 중요 파일을 몰래 덮어씁니다. 로그 기록이 거의 남지 않아 이 공격은 탐지가 거의 불가능합니다.

Qualys와 Anthropic의 공동 연구를 통해 발견된 RefluXFS 취약점은 리눅스 시스템에 존재하는 많은 기존 방어 메커니즘에 도전합니다. 이 취약점은 우리의 모든 관심을 기울여야 할 만큼 심각한 문제이므로, 이번 연구에서는 이 취약점에 대한 기술적인 분석을 살펴보겠습니다.

RefluXFS가 XFS 파일 시스템을 활용하여 루트 권한을 상승시키는 방법

RefluXFS는 XFS에서 도입된 reflink 기능을 활용하여 데이터를 복사하지 않고 파일을 복제할 수 있도록 합니다. 따라서 일반 사용자는 읽기 권한만으로 /etc/passwd와 같은 보호된 파일을 복제할 수 있습니다. 이렇게 하면 원본 파일과 동일한 물리적 디스크 블록을 공유하는 복사본이 생성됩니다.

이 문제는 해당 클론에 직접 쓰기(O_DIRECT)를 수행할 때 발생합니다. 커널은 잠시 락을 해제한 후 블록 공유에 대한 최신성 검사를 수행합니다. 그러면 동시 쓰기 작업이 발생하여 inode나 권한이 변경되지 않고 원래 블록의 데이터가 덮어쓰여질 수 있습니다.

이 상황은 마치 장인이 손대지 말라는 지시를 받았음에도 불구하고 아무런 흔적도 남기지 않고 몰래 벽을 다시 칠하는 것과 같습니다. 결과적으로, 불법적으로 수정된 루트 파일은 완전한 권한으로 코드를 실행할 수 있게 되어 은밀한 루트 접근 권한을 획득할 수 있습니다.

은밀한 위험: 지속적이고 추적 불가능한 루트 액세스

RefluXFS가 특히 위험한 이유는 수정 사항이 디스크의 블록 단위로 기록되기 때문입니다. 즉, 메타데이터는 그대로 유지됩니다. 수정된 바이너리는 SUID 비트를 그대로 유지하므로 실행 중에 권한 상승이 가능합니다.

더욱이, 이러한 변경 사항은 재부팅 후에도 유지되어 침입이 지속됩니다. 커널 로그에는 이러한 활동이 기록되지 않으므로 표준 탐지 도구를 우회할 수 있습니다. 마치 창문을 깨고 시계를 감는 도둑을 옹호하는 것과 같습니다.

SELinux, KASLR, SMEP, SMAP과 같은 기존 보호 메커니즘은 취약점이 파일 시스템의 블록 할당 심층부를 조작하기 때문에 아무것도 탐지하지 못합니다. 이러한 메커니즘의 실패는 기존 보안 방어를 무력화시킵니다.

RHEL, CentOS 및 AlmaLinux에서 RefluXFS 취약점을 악용할 수 있는 시스템 및 조건

이 취약점은 4.11 버전 이후의 모든 Linux 커널에 영향을 미치며, 이는 현재 유지 관리되는 거의 모든 버전에 해당합니다. 파일 시스템은 XFS여야 하고 reflink가 활성화(reflink=1)되어 있어야 합니다. 또한, 권한이 없는 사용자가 중요한 루트 파일이 있는 파티션의 디렉터리에 쓰기 권한이 있어야 합니다.

영향을 받는 배포판에는 RHEL 8, 9, 10, CentOS Stream, AlmaLinux, Rocky Linux, Oracle Linux 및 Amazon Linux가 포함됩니다. Qualys에 따르면 이러한 시스템을 모두 합치면 약 1,640만 대의 취약한 시스템이 있습니다. Debian, Ubuntu 및 Fedora Workstation은 루트 디렉터리에 XFS를 사용하지 않으므로 표준 구성에서는 영향을 받지 않습니다.

SELinux 및 기타 보호 조치: RefluXFS에 대응하기에 충분하지 않은 이유

SELinux를 강제 모드로 설정하면 안전할 거라고 생각하기 쉽지만, RefluXFS의 경우에는 그렇지 않습니다. SELinux는 엄격 모드로 설정하더라도 이 취약점을 막을 수 없습니다.

커널 잠금, 격리된 컨테이너, 심지어 KASLR, SMEP 또는 SMAP조차도 이 취약점을 탐지하거나 방지하지 못합니다. 이 취약점은 표준 파일 시스템 수준의 권한 관리를 우회하여 작동하므로 이러한 방어 체계가 무력화됩니다.

Red Hat 엔지니어는 임시 해결책으로 문제의 원인인 xfs_file_remap_range 함수를 비활성화하는 SystemTap 스크립트를 제안했습니다. 이는 긴급 조치이지만, 해당 함수에 의존하는 애플리케이션의 경우 reflink 기능을 사용할 수 없게 만듭니다.

2026년 RefluXFS 예방을 위한 공식 패치 및 모범 사례

다행히 리눅스 커널에 통합된 패치가 2026년 7월 16일부터 제공되고 있습니다. 이 패치는 XFS의 reflink 핵심에서 발생하는 경쟁 조건을 해결하고 공격을 무력화합니다. RHEL 기반 배포판들은 이미 해당 패치를 적용한 업데이트를 배포했습니다.

RHEL 및 파생 배포판의 경우, 수정된 버전은 8.10 브랜치의 경우 4.18.0-553.144.1.el8_10, 9.8 브랜치의 경우 5.14.0-687.26.1.el9_8, 10.2 브랜치의 경우 6.12.0-211.34.1.el10_2입니다. 이러한 업데이트는 지체 없이 적용해야 합니다.

한편, 스크립트를 이용해 Reflink를 비활성화하거나 시스템 구성을 수정하는 것은 비상 조치입니다. 중요한 것은 예방이 치료보다 낫다는 점이며, 특히 기존의 보안 조치를 우회하는 이처럼 위험한 취약점에 직면했을 때는 더욱 그렇습니다.

sudo apt update && sudo apt upgrade