
Proof-of-concept d'exploit pour CVE-2026-102489 dans Zammad : enchaîne une fuite de session WebSocket en détournement de session authentifiée et exécution de code à distance non authentifiée.
Ce dépôt contient une preuve de concept pour CVE-2026-102489, une vulnérabilité d'exécution de code à distance non authentifiée dans Zammad. L'exploit enchaîne une faille de divulgation d'informations via WebSocket pour aboutir à la prise de contrôle de session authentifiée et à l'exécution arbitraire de commandes sous l'utilisateur système zammad.
Sessions::Event::Base est une constante Ruby valide qui ne possède pas de méthode run(). L'envoi de {"event":"base"} sur le point de terminaison WebSocket déclenche une NoMethodError dont le message inclut l'inspection complète du récepteur — laquelle contient @clients, la carte en direct du contexte de requête de chaque utilisateur connecté, y compris leur en-tête Cookie.
Le PoC exploite cette fuite pour :
_zammad_session valides des utilisateurs connectés via la divulgation @clients du WebSocket.Une analyse technique couvrant la cause racine, l'exploitation et les indicateurs de compromission est disponible sur le blog de recherche sur les attaques de Horizon3.ai :
https://horizon3.ai/attack-research/disclosures/cve-2026-102489-zammad-session-leak-rce/
% python3 CVE-2026-102489.py -h
usage: CVE-2026-102489.py [-h] -u URL [-c COMMAND] [--out-file OUT_FILE]
options:
-h, --help show this help message and exit
-u URL, --url URL The base URL of the target
-c COMMAND, --command COMMAND
Command to execute on the target
--out-file OUT_FILE Output file path on the target (default:
/tmp/zammad_rce.txt)
Exécuter avec la commande id par défaut :
python3 CVE-2026-102489.py -u http://zammad.example.com
Exécuter une commande arbitraire :
python3 CVE-2026-102489.py -u http://zammad.example.com -c 'id'
Remarque : La divulgation d'informations nécessite qu'au moins un utilisateur authentifié soit connecté au point de terminaison WebSocket au moment de l'exploitation.
« Ce logiciel a été créé purement à des fins de recherche académique et pour le développement de techniques défensives efficaces, et n'est pas destiné à être utilisé pour attaquer des systèmes, sauf autorisation explicite. » Les mainteneurs du projet déclinent toute responsabilité en cas de mauvaise utilisation. Utilisez-le de manière responsable.