
CVE-2025-9074에 대한 개념 증명(PoC) 익스플로잇 - 인증되지 않은 Docker API 노출로 임의 컨테이너 생성 및 호스트 파일시스템 접근을 허용합니다.
이 저장소는 CVE-2025-9074에 대한 PoC(Proof-of-Concept) 익스플로잇을 제공하며, 이는 TCP 포트 2375에서 Docker Engine API가 비인증 상태로 노출되는 취약점과 관련됩니다.
노출된 API에 접근할 수 있는 공격자는 다음을 수행할 수 있습니다:
이 PoC는 교육 및 승인된 보안 테스트 목적으로만 공개되었습니다.
시스템에 대한 무단 악용은 불법이며 비윤리적입니다.
이 PoC는 소유하거나 테스트할 명시적 권한이 있는 환경에서만 사용하십시오.
2375requests 라이브러리의존성 설치:
pip install requests
로컬 머신에서 이 PoC를 테스트하는 경우 Docker API가 TLS 없이 TCP로 노출되어 있는지 확인하십시오. Docker Desktop에서 다음 단계를 따르세요:
⚠️ 경고: 이 옵션은 Docker API의 인증을 비활성화합니다.
localhost:2375에 접근할 수 있는 로컬 또는 원격 공격자가 Docker 데몬을 제어할 수 있습니다.
격리된 테스트 환경에서만 활성화하십시오 — 절대 프로덕션에서는 사용하지 마세요.
활성화한 후 다음 명령으로 확인할 수 있습니다:
curl http://127.0.0.1:2375/info
API가 "ServerVersion"을 포함한 JSON으로 응답하면 데몬이 올바르게 노출된 것입니다.
# Clone this repository
git clone https://github.com/<your-username>/CVE-2025-9074-POC.git
cd CVE-2025-9074-POC
# Run the PoC
python3 poc_cve_2025_9074.py <target_ip>:2375
대상이 제공되지 않으면 스크립트가 입력을 요청하고 기본값으로 127.0.0.1:2375를 사용합니다.
API 가용성 확인
Docker API가 /info에 응답하는지 확인합니다.
alpine 이미지 가져오기
필요한 기본 이미지를 사용할 수 있는지 확인합니다.
악성 컨테이너 페이로드 준비
호스트 파일시스템을 /mnt에 바인드 마운트한 컨테이너를 생성합니다.
컨테이너 생성 컨테이너 생성 요청을 전송합니다.
컨테이너 시작 컨테이너가 시작되어 호스트 파일시스템에 대한 접근을 제공합니다.
사후 악용 예시:
docker exec -it <container_id> sh
ls /mnt
Expose daemon on tcp://localhost:2375 without TLS를 비활성화하십시오.PoC 스크립트는 연구 중 Gemini AI와 공동 개발되었습니다.
이 PoC는 MIT License 하에 공개됩니다.