Une vulnérabilité découverte sur StackStorm permet le contournement des mécanismes de protection de l'API

Date de publication :

Barak Tawily et Anna Tsibulskaya, deux chercheurs en sécurité, ont découvert une vulnérabilité sur StackStorm, identifiée par la CVE-2019-9580. StackStorm (ST2) est une plateforme OpenSource pour l'automatisation des dossiers d'exploitation (RBA, Run Book Automation). Un attaquant pourrait exploiter cette vulnérabilité afin de contourner la protection CORS. Cette attaque serait peu complexe à mettre en œuvre mais nécessiterait une interaction avec l'utilisateur.

La vulnérabilité réside ici dans la mauvaise manipulation des en-têtes de partage des ressources entre origines multiples, CORS (Cross-Origin Resource Sharing).

Le partage des ressources entre origines multiples (CORS) est un mécanisme qui consiste à ajouter des en-têtes HTTP afin de permettre à un agent utilisateur d'accéder à des ressources d'un serveur situé sur une autre origine que le site courant.

Détails techniques :

CVE-2019-9580 [CVSS v3 6.1] : Un attaquant serait en mesure de faire communiquer une entête Origin non conforme par le client sur l'API StackStorm, afin de contourner la protection CORS et ainsi mettre en place des attaques de type XSS contre une application de StackStorm.

L'origine d'une application web est définie par le schéma (protocole), l'hôte (domaine) et le port de l'hyperlien (URL) utilisée pour y accéder. Un agent utilisateur réalise ainsi une requête HTTP multiorigine (cross-origin) lorsqu'il demande une ressource provenant d'un domaine, d'un protocole ou d'un port différent de ceux utilisés pour la page courante.

L'entête « Access-Control-Allow-Origin » d’une requête HTTP renvoie alors une réponse indiquant si les ressources peuvent être partagées avec une origine donnée. Cet entête peut prendre 3 valeurs : ‘*’, ‘<origin>’ et ‘null’. En indiquant certaines requêtes spécifiques, l’API StackStorm renverra obligatoirement la valeur « null » dans le champ Access-Control-Allow-Origin.

La documentation de Mozilla indique et préconise contre l’utilisation de la valeur « null », qui peut aboutir à une requête réussie d'une origine inconnue chez certains clients. Compte tenu de l'utilisation de l'application, cette attaque peut mener à de l'exécution de code arbitraire à distance suite à l'envoi et l'ouverture d'un document par un développeur authentifié sur la solution StackStorm.

Des correctifs pour cette vulnérabilité ont été publiés par StackStorm depuis le 8 mars 2019.

Informations

La faille est activement exploitée :

Un correctif existe :

Une mesure de contournement existe :

Risques

Risques

  • Exécution de script indirect (XSS)

Criticité

  • Score CVSS : 6.10

Existence d’un code d’exploitation de la vulnérabilité

  • Plusieurs démonstrations de faisabilité (Proof-of-Concept) ont été publiées par les chercheurs.

Composants & versions vulnérables

  • StackStorm Web UI versions antérieures à 2.9.3

CVE

  • CVE-2019-9580

Solutions ou recommandations

Mise en place de correctif de sécurité

  • Les versions 2.10.3 et 2.9.3 de StackStorm corrigent cette vulnérabilité.

Solution de contournement

  • Aucune solution de contournement n’est proposée.