SAP Cloud SDK Python : faille CVSS 10, identifiants OAuth2 volés

Une faille CVSS 10 dans SAP Cloud SDK pour Python peut exposer les identifiants OAuth2 des applications multi-tenant sur BTP.
SAP a publié le 13 octobre un avis de sécurité visant le SAP Cloud SDK pour Python. La faille est notée 10 sur l’échelle CVSS, le niveau de gravité maximal. En effet, elle peut conduire une application à envoyer ses identifiants OAuth2 vers un serveur contrôlé par un attaquant.
Les équipes qui développent sur la plateforme SAP sont donc directement concernées. Voici ce que l’on sait de cette vulnérabilité. Nous verrons également comment s’en protéger.
Ce que révèle l’avis de sécurité sur SAP Cloud SDK
Le problème touche le client Python officiel de SAP pour les services de la Business Technology Platform (BTP). Ce kit de développement sert à communiquer avec les services cloud de la plateforme. Il gère notamment l’authentification des applications.
Selon SAP, la faille peut provoquer l’envoi des identifiants clients OAuth2 de l’application vers une destination malveillante. Autrement dit, les secrets qui permettent à l’application de s’authentifier se retrouvent exposés. Une note de 10 sur 10 reflète donc cette gravité.
Les éléments disponibles ne précisent pas d’identifiant CVE ni de numéros de versions. Il faut donc consulter directement l’avis officiel de SAP. Vous y trouverez les versions corrigées.
Des applications multi-tenant sur BTP exposées
La vulnérabilité concerne les applications multi-tenant déployées sur SAP BTP. Dans ce modèle, une même application sert plusieurs clients, appelés tenants. Chaque tenant est généralement identifié par un sous-domaine.
Or l’exploitation suppose que l’attaquant puisse contrôler ce sous-domaine du tenant. C’est une condition importante. Elle limite le champ des scénarios possibles. Toutefois, elle ne les rend pas improbables.
En pratique, ce type de configuration est courant dans les architectures SaaS. En effet, le sous-domaine est souvent fourni par le client, ou déduit de la requête. Si l’application l’utilise sans contrôle strict, la porte reste ouverte. Cette lecture reste toutefois une déduction. Seul l’avis de SAP détaille le mécanisme exact.
Pourquoi le vol d’identifiants OAuth2 est si grave
Les identifiants clients OAuth2 jouent le rôle de clés d’accès. Avec eux, un attaquant peut se faire passer pour l’application auprès des services de la plateforme. Ensuite, il peut obtenir des jetons d’accès valides.
Les conséquences dépendent des droits accordés à l’application. Dans le pire des cas, l’attaquant accède à des données de plusieurs tenants. Il peut aussi appeler des services avec des privilèges élevés. En outre, ces actions paraissent légitimes dans les journaux, ce qui complique la détection.
De plus, un environnement multi-tenant amplifie le risque. Une seule application compromise peut affecter de nombreux clients à la fois. C’est pourquoi la note CVSS atteint son maximum.
Que faire pour sécuriser SAP Cloud SDK ?
Les équipes concernées doivent agir sans attendre. Voici les mesures prioritaires, à adapter selon votre contexte.
- Lire l’avis de SAP et identifier les versions du SDK Python utilisées dans vos projets.
- Appliquer les correctifs indiqués par l’éditeur, puis redéployer les applications concernées.
- Valider strictement le sous-domaine du tenant, par exemple avec une liste de valeurs autorisées.
- Renouveler les secrets clients OAuth2 des applications multi-tenant potentiellement exposées.
- Surveiller les journaux à la recherche d’usages inhabituels des jetons ou de connexions sortantes inattendues.
Ce qu’il faut retenir
- SAP a publié l’avis le 13 octobre. La faille est notée CVSS 10.
- Elle affecte le SAP Cloud SDK pour Python, le client officiel des services BTP.
- Les applications multi-tenant sont visées, si un attaquant contrôle le sous-domaine du tenant.
- Par conséquent, les identifiants OAuth2 de l’application peuvent être envoyés à un serveur malveillant.
- Il faut donc corriger vite, contrôler les entrées et faire tourner les secrets.
Source : SAP Discloses Critical CVSS 10 Flaw in Cloud SDK for Python Allowing OAuth2 Credential Theft