리눅스 커널 0-day 취약점, 루트 권한 파일 접근 가능!
리눅스 커널(Linux Kernel)의 0-day 취약점(0-day vulnerability)을 통해 권한 없는 사용자가 루트 소유 파일에 접근 가능
Qualys에 의해 보고되었으며, 2026년 5월 14일 패치(Patch) 적용 전까지 안정 버전(Stable Version) 포함, 광범위한 영향(Widespread Impact)
`pidfd_getfd(2)` 시스템 콜(System Call)의 취약점을 악용하여, `ssh-keysign` 및 `/etc/shadow` 파일 탈취 가능
임시 해결책으로 특정 파일의 실행 권한 제거가 제시되었으나, 근본적인 해결책(Fundamental Solution)은 커널 패치(Kernel Patch)
커뮤니티에서는 PoC(Proof of Concept)의 작동 여부와 취약점의 심각성(Severity)에 대한 논의가 진행됨
취약점 개요 및 기술적 분석
본 취약점은 `__ptrace_may_access()` 함수 내 `dumpable` 검사 누락으로 인해 발생하며, `task->mm == NULL`인 경우 검사가 생략된다. 특히, `do_exit()` 함수가 `exit_mm()`을 먼저 실행하여 파일 디스크립터(File Descriptor)가 남아있는 상황에서 `pidfd_getfd(2)`를 악용하여 권한 없는 사용자가 루트 소유 파일을 읽을 수 있다. 이는 데이터 격리 아키텍처(Data Isolation Architecture)의 취약점을 드러낸다.
PoC(Proof of Concept) 및 공격 시나리오
PoC는 `sshkeysign_pwn`을 통해 `/etc/ssh/ssh_host_{ecdsa,ed25519,rsa}_key` 파일을, `chage_pwn`을 통해 `/etc/shadow` 파일을 탈취한다. `ssh-keysign.c`는 파일(mode 0600)을 열고 `permanently_set_uid()` 전에 실패하며, `chage -l`은 `spw_open(O_RDONLY)`을 호출한 후 `setreuid(ruid, ruid)`를 실행한다. 이러한 일련의 과정은 데이터 미저장 정책(Zero-Retention Policy)을 우회하는 공격으로 이어진다.
임시 해결 방안 및 근본적인 해결책
임시 방편으로 `/usr/lib64/misc/ssh-keysign` 파일의 실행 권한을 제거하는 방법이 제시되었지만, 이는 특정 PoC에만 국한된 약한 완화책이다. 보다 근본적인 해결책은 커널 패치(Kernel Patch)를 적용하는 것이다. 또한, `pidfd_getfd`를 eBPF 또는 systemtap을 사용하여 차단하는 방법도 고려할 수 있다. 하지만, 이는 시스템 전반의 안정성(System Stability)에 영향을 줄 수 있다.
커뮤니티 반응 및 Qualys의 역할
커뮤니티에서는 PoC의 작동 여부와 취약점의 심각성에 대한 논의가 활발하게 진행되었다. Qualys는 해당 취약점을 보고하고 패치를 제공했지만, Linux 커널 보안 정책으로 인해 공식적인 발표를 미루고 있다. LLM(Large Language Model)의 발전으로 인해 취약점 분석 및 PoC 개발 속도가 빨라짐에 따라, 보안 패치(Security Patch)의 중요성이 더욱 강조되고 있다.
취약점의 파급력 및 영향
본 취약점은 Raspberry Pi OS Bookworm, Debian 13, Ubuntu 22.04/24.04/26.04, Arch, CentOS 9 등 다양한 리눅스 배포판에 영향을 미친다. 특히, setuid 실행 파일(setuid Executable)이 열어둔 파일 디스크립터(File Descriptor)에 접근할 수 있다는 점은 광범위한 시스템 보안 위협(System Security Threat)으로 이어진다. 따라서, 신속한 패치 적용이 요구된다.