
自研针对ESXI 堆栈溢出的CVE-2021-21974 POC,只支持项目给出的的目标和环境,用于学习和研究
VMware ESXi OpenSLP 힙 오버플로우 원격 코드 실행 PoC
Author: Aiyakami
CVE-2021-21974는 VMware ESXi의 OpenSLP 서비스에 존재하는 힙 오버플로우 취약점으로, 공격자는 인증 없이 네트워크를 통해 대상 ESXi 호스트의 SLP 서비스(기본 포트 427)에 특수 제작된 패킷을 전송하여 원격 코드 실행(RCE)을 달성할 수 있습니다.
이 레포지토리는 실제 ESXi 6.7 환경에서 안정적으로 재현할 수 있는 단일 파일 Python PoC를 제공합니다. 순수 네트워크 경로를 통해 공격하며, 대상의 로컬 자격 증명이나 SSH 접근 없이도 명령 실행을 트리거할 수 있습니다.
| 항목 | 정보 |
|---|---|
| 대상 시스템 | VMware ESXi 6.7.0 Update03 |
| 빌드 번호 | 14320388 |
| 취약 서비스 | OpenSLP (slpd), 포트 427 |
| 테스트 성공률 | 100% |
공식 VMware-VMvisor-Installer 6.7.0 update03 build-14320388 ISO:
해당 이미지는 위 테스트 환경에서 사용된 원본 설치 이미지로, 본 PoC의 100% 성공률을 완전히 재현할 수 있습니다.
다음 두 스크린샷은 ESXi 6.7 build-14320388에서 본 PoC를 실제 실행한 결과입니다.


# 대상 ESXi 호스트는 slpd 서비스가 실행 중이어야 함 (기본 427 포트)
python CVE-2021-21974.py
스크립트가 실행되면 저자의 서명이 출력된 후 전체 익스플로잇 체인이 실행됩니다:
stage1 정보 유출 → 임의 주소 읽기 → libc 베이스 유출 → DB 버퍼 위치 확인 → __free_hook을 system으로 덮어쓰기 → SrvDeReg가 명령 실행을 트리거합니다.
기본 COMMAND는 다음과 같습니다:
echo PWNED_BY_CVE_2021_21974>/tmp/p
성공 시 대상 호스트의 /tmp/p에 PWNED_BY_CVE_2021_21974 내용이 작성됩니다.
참고: 본 PoC는 고정된 힙 레이아웃 매개변수를 기반으로 하며, 대상 ESXi 6.7 build-14320388의 slpd/glibc 버전에 의존합니다. 환경을 변경할 경우 fd/size/pacing 매개변수를 적절히 조정해야 합니다.
이 프로젝트는 승인된 보안 연구 및 CTF/AWD 교육 시나리오에서만 사용되며, 격리된 샌드박스 환경에서 검증되었습니다. 승인되지 않은 실제 시스템에는 사용하지 마십시오. 사용자는 이로 인해 발생하는 모든 법적 책임을 스스로 부담합니다.