
CVE-2026-3888에 대한 개념 증명 익스플로잇으로, Ubuntu 시스템에서 root로의 로컬 권한 상승을 가능하게 하는 snapd 경쟁 조건입니다.
snapd의 로컬 권한 상승 취약점(CVE-2026-3888)에 대한 개념 증명(Proof of Concept)입니다. 이 취약점은 systemd-tmpfiles가 삭제한 후 개인 디렉터리 /tmp/.snap을 재생성함으로써, 권한이 없는 로컬 공격자가 영향을 받는 Ubuntu 시스템에서 자신의 권한을 root로 상승시킬 수 있게 합니다.
CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:C/C:H/I:H/A:H이 취약점은 두 가지 권한 있는 유틸리티 간의 의도하지 않은 상호작용에서 비롯됩니다:
공격자는 systemd-tmpfiles의 정리 주기를 조작하여 이 경쟁 조건(race condition)을 악용할 수 있습니다. /tmp/.snap 디렉터리가 삭제되면, 공격자는 악성 페이로드로 이를 재생성합니다. 다음 샌드박스 초기화 중에 snap-confine이 이 파일들을 root로 마운트하여, 권한 있는 컨텍스트에서 임의 코드 실행을 가능하게 합니다.
root 접근 권한을 얻을 수 있습니다.경고: 이 익스플로잇은 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 사용에 따른 책임은 본인에게 있습니다.
gcc 컴파일러 설치됨 (sudo apt install build-essential)./tmp/.snap 디렉터리가 systemd-tmpfiles에 의해 삭제된 상태여야 합니다. 이는 Ubuntu 24.04에서는 30일 후, 이후 버전에서는 10일 후에 발생합니다. sudo rm -rf /tmp/.snap으로 정리를 수동으로 시뮬레이션할 수 있습니다.이 저장소를 클론합니다:
git clone https://github.com/tu-usuario/cve-2026-3888-poc.git
cd cve-2026-3888-poc
의존성을 설치합니다:
pip install -r requirements.txt
PoC를 실행합니다: 스크립트는 취약점을 확인하고, 악성 라이브러리를 생성하며, 익스플로잇을 트리거합니다.
python3 cve_2026_3888_poc.py
결과를 확인합니다:
익스플로잇이 성공하면, root로 실행된 id 명령의 결과가 담긴 /tmp/pwn.txt 파일이 생성됩니다.
시스템을 정리합니다: 익스플로잇에 의해 생성된 아티팩트를 제거하려면 다음을 실행합니다:
python3 cve_2026_3888_poc.py --cleanup