
XSS stocké dans Discourse via le nom de fichier image - CVE-2024-52794
J'ai découvert une vulnérabilité de cross-site scripting (XSS) stocké dans Discourse, une plateforme de forum open-source. La vulnérabilité permet à un attaquant d'exécuter du JavaScript arbitraire dans le navigateur de la victime en injectant une charge utile malveillante dans le nom de fichier d'une image téléchargée. Cela affecte plusieurs vecteurs d'interaction utilisateur, y compris les sujets publics, les commentaires et les messages privés.
Lors du téléchargement d'une image, le nom de fichier est affiché sans échappement approprié dans le frontend. Si le nom de fichier inclut une charge utile JavaScript, par exemple :
<script>alert(document.domain)</script>
...elle sera exécutée lorsqu'un utilisateur cliquera sur l'image. Cela s'applique à :
La logique vulnérable n'a pas réussi à encoder ou supprimer les balises script des attributs alt des images ou du balisage environnant.
document.cookie)| Canal | Versions concernées |
|---|---|
| Stable | ≤ 3.3.2 |
| Beta | ≤ 3.4.0.beta3 |
| Tests-passed | ≤ 3.4.0.beta3 |
| Canal | Version corrigée |
|---|---|
| Stable | ≥ 3.3.3 |
| Beta | ≥ 3.4.0.beta4 |
| Tests-passed | ≥ 3.4.0.beta4 |
Le problème a été résolu en échappant correctement les noms de fichiers fournis par l'utilisateur et en échappant tout contenu dynamique dans les composants de rendu d'image.
| Date | Événement |
|---|---|
| 18 nov. 2024 | Vulnérabilité signalée via Hackerone |
| 19 déc. 2024 | CVE attribué : CVE-2024-52794 |
| 19 déc. 2024 | Avis public publié par Discourse |