
Ubuntu Server에서 기본 LXD 그룹 멤버십을 통한 로컬 권한 상승을 루트로 시연하는 개념 증명 및 교육 보고서, 탐지 및 완화 스크립트 포함.
기본 lxd 그룹 멤버십과 Ubuntu의 lxd-installer 패키지를 통해 root로 로컬 권한 상승

데모는 AWS EC2 Ubuntu Server 26.04에서 실행됩니다.
버그는 Ubuntu Server 26.04의 기본 설치가 기본 사용자에게 묵시적으로 lxd 그룹 멤버십을 부여한다는 점입니다. 이 그룹은 LXD의 신뢰 모델에 따라 비밀번호 없는 root와 동등하며, 무해한 "컨테이너 관리" 기능으로 제시됩니다. 게다가 권한이 없는 사용자는 추가 권한 없이도 LXD를 직접 설치 및 설정할 수 있으므로, sudo 비밀번호를 한 번도 사용하지 않고도 root와 동등한 그룹에 접근할 수 있습니다.
호스트는 다음 두 조건이 모두 참일 때 노출됩니다: 권한이 없는 누군가가 lxd 그룹에 속해 있고, root로 실행되는 LXD 경로(설치된 데몬 또는 lxd-installer 소켓)에 접근 가능한 경우.
다음을 확인하고 실행하세요: poc/check-vulnerable.sh:
cd poc && chmod +x check-vulnerable.sh && ./check-vulnerable.sh
cd poc && chmod +x exploit.sh && ./exploit.sh # run as an unprivileged user in the lxd group
요구 사항, 예상 출력, 수동 재현 및 정리에 대해서는 poc/README.md를 참조하세요.
수정은 배포판 측에서 이루어져야 합니다: Ubuntu Server는 기본적으로 기본 사용자를 lxd 그룹에 넣어서는 안 됩니다. 해당 그룹은 root와 동등하므로, 묵시적인 기본값이 아닌 sudo와 같은 명시적이고 이해된 부여를 받아야 마땅합니다. 필요 시 lxd-installer가 실행되기 전에 sudo 비밀번호를 요구하면 설치 전 벡터도 차단할 수 있지만, 그 자체로는 이미 설치된 LXD가 노출된 상태로 남습니다.
그때까지는 모든 권한 없는 계정을 lxd 그룹에서 제거하세요. 변경 사항은 해당 구성원의 다음 로그인 시 적용됩니다.
getent group lxd # list current members
sudo gpasswd -d "$USER" lxd # remove one member; repeat for each
그런 다음 lxd 멤버십을 비밀번호 없는 sudo처럼 취급하세요: 이미 root를 신뢰하는 사용자에게만 부여하십시오.
swing) — STAR Labs SG Pte. Ltd.우리는 이 문제를 Ubuntu 보안 팀에 책임감 있게 공개했으며, 검토 결과 보안 취약점으로 간주되지 않는다고 결정되었습니다.
이 자료는 승인된 보안 연구, 테스트 및 교육 목적으로만 제공됩니다. 소유한 시스템이나 명시적 평가 허가를 받은 시스템에서만 사용해야 합니다. 저자는 이 정보의 사용으로 인한 오용, 손해 또는 결과에 대해 어떠한 책임도 지지 않습니다.