
Rapport assaini et script PoC limité à la boucle locale démontrant un XSS stocké via des URL de licence `javascript:` dans MediaSearch QuickView (CVE-2026-103585).
Rapporteur : Marco Paciaroni (BomboBombone).
MediaSearch QuickView utilisait directement LicenseUrl.value de CommonsMetadata comme destination de lien. CommonsMetadata copiait la valeur licensetpl_link depuis une description de fichier modifiable sans restreindre son schéma d'URL. Un éditeur pouvait stocker une URL javascript: ; un visiteur qui ouvrait ce fichier dans MediaSearch et suivait le lien de licence affiché pouvait exécuter du script dans l'origine du wiki.
Le CVE-2026-103584 associé couvre le chemin source de CommonsMetadata.
Utilisez une description de fichier jetable sur un wiki de test local avec un marqueur inoffensif :
<span class="licensetpl"><span class="licensetpl_link">javascript:alert("CVE_LICENSE_URL_XSS")</span><span class="licensetpl_short">Test license</span><span class="licensetpl_long">Local test</span></span>
Interrogez ensuite l'API locale :
python poc.py --api http://127.0.0.1:8080/w/api.php --title File:LicenseUrlProbe.png
Le script vérifie si l'API renvoie le schéma exécutable dans LicenseUrl.value. Pour observer le comportement du navigateur, ouvrez le fichier dans le MediaSearch QuickView local et suivez son lien de licence. Le script n'autorise que les URL d'API en loopback.