Une faille DOM XSS découverte sur le site de Nokia permettant l’exécution de scripts malveillants.
Introduction
Lors d'une analyse de sécurité sur Nokia, Nous avons découvert une vulnérabilité DOM XSS causée par une mauvaise gestion des paramètres d’URL.
Analyse de la faille
Le site insérait directement le contenu d’un paramètre d’URL dans le DOM sans aucun filtrage ni encodage. Cependant, il n'acceptait pas les balises HTML classiques comme <script>
, mais uniquement des caractères encodés en Unicode.
Exploitation
Après plusieurs tests, nous avons découvert que le site exécutait uniquement du code XSS lorsque les caractères spéciaux étaient encodés en Unicode. Voici un exemple d’URL permettant d'exploiter la faille :
https://exemplefoundxss.nokia.com/param?msg=\u003cimg\u0020src\u003dx\u0020onerror\u003d\u0022alert('xss found')\u0022\u003e

Lorsque cette URL était visitée, le script s’exécutait immédiatement, affichant une alerte. Le code injecté était interprété de la manière suivante par le navigateur :
document.write("<font face='Arial, Helvetica'><B>\u003cimg\u0020src\u003dx\u0020onerror\u003d\u0022alert('xss found')\u0022\u003e </B> you cannot access your account at this time.<p>Please contact your Security Administrator or Help Desk.</font>");
Pourquoi seul ce format fonctionne ?
Le site appliquait probablement un filtrage naïf en bloquant directement les balises HTML classiques comme <script>
ou <img>
. Cependant, il ne détectait pas les mêmes balises encodées en Unicode, ce qui permettait de contourner le filtre et d’exécuter du JavaScript malveillant.
Correction et prévention
Pour éviter ce type de faille, il est recommandé de :
- Filtrer et encoder correctement toutes les entrées utilisateur.
- Utiliser
textContent
au lieu deinnerHTML
: - Une autre solution consiste à implémenter une Content Security Policy (CSP) pour empêcher l'exécution de scripts non autorisés.
document.getElementById("message").textContent = userInput;
Conclusion
Aprèsavoir signalé cette vulnérabilité à Nokia, nous avons reçu une réponse dès le lendemain. L'équipe de sécurité nous a remerciés pour notre rapport et nous a informés qu'un autre chercheur en cybersécurité avait déjà signalé cette faille avant nous.