
CVE-2025-6019에 대한 기술 분석 및 개념 증명, libblockdev 및 udisks2의 로컬 권한 상승 취약점으로 조작된 XFS 이미지를 통해 루트 액세스를 가능하게 합니다.
CVE-2025-6019는 libblockdev 라이브러리에서 발견된 로컬 권한 상승(LPE) 취약점으로, udisks2 데몬 및 Polkit과 함께 작용합니다.
allow_active Polkit 권한을 가진 로컬 공격자(일반적으로 실제 컴퓨터 사용자)는 libblockdev와 udisks 데몬이 상호작용하는 방식을 악용할 수 있습니다. 공격자는 SUID-root 셸을 포함하는 악성 XFS 이미지를 생성하고, udisks가 nosuid 및 nodev와 같은 보안 플래그 없이 해당 이미지를 마운트하도록 속일 수 있습니다. 이를 통해 공격자는 SUID-root 셸을 실행하고 시스템의 전체 루트 권한을 얻을 수 있습니다.
전체 공격 흐름은 준비, 전송, 트리거의 세 단계로 나눌 수 있으며, 악성 이미지는 모든 시스템에서 미리 준비할 수 있습니다.
준비 단계 (공격자 자신의 시스템에서): 공격자는 표준 Linux 도구(예: mkfs.xfs)를 사용하여 XFS 파일 시스템 이미지를 생성합니다. 이 이미지 안에 미리 컴파일된 SUID 권한이 있는 악성 프로그램(예: 백도어 셸)을 넣습니다. 이 이미지 자체가 '공격 페이로드(payload)'입니다.
전송 단계: 공격자는 이렇게 만든 악성 이미지를 대상 호스트로 전송해야 합니다. 방법은 여러 가지가 있으며, 예를 들어 wget을 통한 다운로드, USB 드라이브, 또는 대상 호스트의 다른 취약점을 이용한 파일 업로드 등이 있습니다.
트리거 단계 (대상 호스트에서): 공격의 핵심 단계는 대상 호스트에서 발생합니다. 공격자는 CVE-2025-6019 취약점을 이용하여 대상 호스트의 udisks2 서비스가 이 악성 이미지를 마운트하도록 속입니다. 취약점으로 인해 udisks2는 마운트 시 필요한 보안 플래그(예: nosuid)를 추가하지 않습니다.
권한 상승 단계: 이미지가 안전하지 않게 마운트되면, 그 안에 있는 SUID 권한의 악성 프로그램이 실행 가능해지고, 실행 시 root 권한을 상속받아 공격자가 성공하게 됩니다.
결론: 이미지는 단지 악성 프로그램을 담은 '컨테이너'일 뿐이며, 어디서 만드는지는 중요하지 않습니다. 중요한 것은 대상 시스템이 이 컨테이너를 어떻게 '처리'하는지입니다.
이 취약점의 CVSS 3.1 기본 점수는 7.0으로 높은 심각도에 해당합니다.
이 취약점을 성공적으로 악용하면 공격자가 영향을 받는 시스템을 완전히 제어할 수 있습니다.
libblockdev 및 udisks2 서비스를 사용하는 대부분의 Linux 배포판이 영향을 받으며, 여기에는 Ubuntu, Debian, Fedora 및 openSUSE가 포함됩니다.
polkit 규칙 org.freedesktop.udisks2.modify-device의 allow_active 설정을 yes에서 auth_admin으로 변경하는 것이 좋습니다.이 취약점은 때때로 다른 취약점인 CVE-2025-6018과 함께 사용될 수 있으며, 후자는 일부 배포판에서 원격으로 allow_active 권한을 획득하는 데 사용될 수 있습니다.
이 취약점은 또한 Linux 버그가 Automotive Grade Linux(AGL)를 사용하는 소프트웨어 정의 자동차에 어떻게 영향을 미칠 수 있는지를 보여줍니다.