
CVE-2021-41091을 위한 POC
이 익스플로잇은 CVE-2021-41091 보안 취약점에 대한 심층 분석을 제공하며, 호스트에서 권한 상승을 달성하기 위해 익스플로잇 스크립트를 활용하는 방법을 단계별로 안내합니다.
CVE-2021-41091은 Moby(Docker Engine)의 결함으로, 부적절하게 제한된 권한으로 인해 권한이 없는 Linux 사용자가 데이터 디렉토리(일반적으로 /var/lib/docker에 위치) 내에서 프로그램을 탐색하고 실행할 수 있게 합니다. 이 취약점은 컨테이너에 setuid와 같은 확장된 권한이 있는 실행 프로그램이 포함된 경우 존재합니다. 권한이 없는 Linux 사용자는 해당 프로그램을 발견하고 실행할 수 있으며, 호스트의 사용자 UID가 컨테이너 내 파일 소유자 또는 그룹과 일치하는 경우 파일을 수정할 수도 있습니다.
오버레이 파일시스템은 이 취약점을 악용하는 데 중요한 구성 요소입니다. Docker의 오버레이 파일시스템은 컨테이너의 파일 시스템을 호스트의 파일 시스템 위에 계층화하여 호스트 시스템이 컨테이너 내의 파일에 접근하고 조작할 수 있게 합니다. CVE-2021-41091의 경우, /var/lib/docker/overlay2의 과도하게 허용적인 디렉토리 권한으로 인해 권한이 없는 사용자가 컨테이너 내의 프로그램에 접근하고 실행할 수 있어 잠재적인 권한 상승 공격으로 이어집니다.
머신에서 호스팅되는 Docker 컨테이너에 연결하고 루트 액세스 권한을 얻습니다.
컨테이너 내부에서 다음 명령어를 사용하여 /bin/bash에 setuid 비트를 설정합니다: chmod u+s /bin/bash
호스트 시스템에서 제공된 익스플로잇 스크립트(poc.sh)를 리포지토리를 클론하고 다음과 같이 실행합니다:
git clone https://github.com/UncleJ4ck/CVE-2021-41091
cd CVE-2021-41091
chmod +x ./poc.sh
./poc.sh
Docker 엔진 버전 20.10.5+dfsg1에서 테스트됨
이 취약점을 해결하려면 Docker를 버전 20.10.9 이상으로 업데이트하는 것이 중요합니다.