
Preuve de concept et notes de correctif pour CVE-2026-96876, une XSS réfléchie dans les messages d'erreur d'exportation de MediaWiki Cargo, avec un script pour vérifier la sortie d'exception non échappée.
Rapporteur : Marco Paciaroni (BomboBombone).
CargoExport émettait des messages d'exception sans échappement HTML. Certaines exceptions contenaient du texte d'alias de champ non fiable, permettant à la sortie d'erreur de devenir du balisage exécutable.
L'enregistrement CVE identifie Cargo jusqu'à la version 3.9.4 comme affecté.
Le rapport initial a établi un accès anonyme au chemin d'erreur vulnérable sans page enregistrée ni données Cargo existantes. Une victime ouvrant une requête forgée pouvait exécuter du script dans l'origine du wiki avec ses permissions disponibles.
Le rapport initial enregistre une exécution dans le navigateur à partir de la réponse d'erreur HTML locale. La requête de validation n'a pas modifié l'état du wiki, et un contrôle ordinaire n'a pas créé d'élément exécutable.
La modification en amont échappe en HTML les messages d'exception avant de les imprimer dans la réponse d'export.
python poc.py https://wiki.example
Le script requête le chemin d'erreur d'export affecté avec un marqueur DOM inoffensif et indique si le marqueur est réfléchi en tant qu'élément script.