23 mars 2021

[CVE-2021-3012] Vulnérabilité d’injection de code HTML/JavaScript à distance sur les produits ESRI ArcGIS

Introduction

Il y a quelques semaines, BSSI a effectué un test d’intrusion dont le produit ArcGIS d’ESRI figurait dans le périmètre du client.

Cet article a pour but de décrire une vulnérabilité découverte par l’équipe d’audit de BSSI, permettant à un attaquant au préalable authentifié, d’injecter du code HTML/JavaScript à distance sur l’application. Cette vulnérabilité affecte tous les produits ArcGIS Entreprise et ArcGIS Online antérieurs à la version 10.9

ArcGIS est une solution complète de cartographie, d’analyse et de collaboration qui met l’intelligence géographique au service de tous. Il est rendu possible par exemple de créer rapidement et simplement des cartes, gérer et analyser des données géographiques, collaborer et partager des travaux avec l’ensemble des collaborateurs et clients. Les outils d’analyse intuitifs mis à disposition aident les utilisateurs à mieux connaître leurs données permettant ainsi d’apporter un contexte utile aux données en les associant aux données démographiques et de mode de vie d’Esri.

Il existe deux plateformes d’architecture de la solution ArcGIS :

  •  ArcGIS Online : Avec un déploiement en mode SaaS, la solution « Software As A Service » propose une haute disponibilité du produit en s’affranchissant de toute gestion d’infrastructure IT
  • ArcGIS Entreprise : ArcGIS Entreprise est basé sur un déploiement en mode On-premises. Cette solution implémente le logiciel ArcGIS dans l’infrastructure IT d’un client permettant d’avoir un meilleur contrôle et gestion du produit

Exploitation

L’audit mené par les auditeurs s’est déroulé en boîte noire. Cette étape a permis de tester l’application, sans information du client, à l’instar d’un attaquant présent sur Internet.

La vulnérabilité identifiée au cours des tests permet à un utilisateur authentifié sur l’application d’injecter du code malveillant exécuté côté client (HTML/JavaScript) dans les pages web consultées par d’autres utilisateurs (XSS stockée).

Une XSS stockée, contrairement à une XSS réfléchie, correspond à une injection de code dans l’application qui sera directement stockée dans la base de données. Cela signifie, que le code injecté va automatiquement s’exécuter au chargement de la page sans aucune intervention de la part de l’utilisateur.

Les tests menés par les auditeurs ont permis d’identifier un paramètre vulnérable aux injections de type Cross-Site Scripting (XSS). Ce dernier a été identifié dans le champ « URL » de l’onglet « Paramètres » d’un élément de type « Document Link » :

Le champ URL est vulnérable aux injections XSS

En effet, l’absence de filtrage des entrées dans le champ URL permet à un attaquant d’exploiter la fonctionnalité d’ajout de « Document Link », afin d’injecter du code HTML/JavaScript malveillant.

Le champ URL suivant a été utilisé afin d’exécuter une charge utile malveillante :
« ><img src=x onerror=alert(document.domain)>

Une fois la charge utile injectée, dès lors qu’un utilisateur souhaitera accéder l’élément, cette dernière sera exécutée :

Exécution de l’injection XSS dans l’élément de type « Document Link »

Les cookies de session de l’application étant générés sans les attributs de sécurité « Secure » et « HttpOnly », il est possible de dérober le jeton de session d’un utilisateur à son insu par ce moyen. Cela pourrait permettre de prendre totalement le contrôle du compte d’un utilisateur.

L’exploitation en vidéo sur notre chaîne YouTube

Conclusion

Suite à la découverte de cette vulnérabilité, l’équipe d’audit de BSSI a contacté et déclaré la vulnérabilité à l’équipe responsable du produit concerné au sein d’Esri. Un correctif a été mis à disposition à partir de décembre 2020 (correspondant à la version 10.9).

Cette vulnérabilité est maintenant connue sous la CVE 2021-3012.

Chronologie

03/11/2020 – Découverte de la vulnérabilité
18/12/2020 – Prise de contact avec l’équipe Cyber-Sécurité d’Esri
04/01/2021 – Déclaration de la vulnérabilité
10/12/2020 – Correction de la vulnérabilité via le correctif 10.9
23/03/2021 – Divulgation de la vulnérabilité (correctif + 90j)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *