Fehler im SAP Cloud SDK for Python kann OAuth2-Geheimnisse preisgeben
Eine Lücke mit CVSS 10.0 im SAP Cloud SDK for Python lässt Angreifer OAuth2-Token-Anfragen umleiten und App-Geheimnisse stehlen. Version 0.45.2 und neuer beheben sie.
3 Min. Lesezeit

Die Zahlen
- CVSS score of CVE-2026-89111
- 10.0
- first patched version, per SOCRadar
- 0.45.2
- critical notes in SAP's October 2026 patch day, per SecurityWeek
- 4
SAP hat eine Lücke mit maximalem Schweregrad in seinem Cloud SDK for Python geschlossen, die die Anmeldegeheimnisse einer App an einen Angreifer weitergeben kann. Der Fehler, CVE-2026-89111, erreicht 10.0 von 10 Punkten und wurde mit SAPs Sicherheitsupdates für Oktober 2026 am 13. Oktober gepatcht. Er betrifft Apps, die viele Kunden aus einer einzigen Bereitstellung bedienen, und der Angreifer muss sich nicht anmelden.
Das SAP Cloud SDK for Python ist eine Bibliothek, mit der Entwickler Apps auf SAPs Business Technology Platform bauen, kurz BTP. BTP ist SAPs Cloud-Dienst, auf dem eigene Apps neben SAP-Systemen laufen. Die Lücke steckt darin, wie die Bibliothek OAuth2-Tokens anfordert. Das sind kurzlebige Ausweise, mit denen eine App andere Dienste aufruft.
So funktioniert der Angriff
Der Fehler ist eine Server-Side Request Forgery, kurz SSRF. Dabei bringt ein Angreifer einen Server dazu, eine Anfrage an ein Ziel seiner Wahl zu schicken. SAPs Sicherheitshinweis auf GitHub, den SecurityWeek zitiert, sagt es klar: „Ein Angreifer, der den Parameter tenant_subdomain kontrolliert, kann OAuth2-Token-Anfragen umleiten.“
Die Kette in einfachen Worten:
- Eine mandantenfähige App bildet die Adresse ihres Token-Servers aus der Subdomain eines Mandanten, also dem kundenspezifischen Teil einer Webadresse.
- Die Bibliothek prüfte diesen Wert nicht gründlich genug.
- Ein Angreifer liefert eine Subdomain, die auf ein anderes Ziel zeigt.
- Die App schickt ihre Token-Anfrage dorthin, samt Client-ID und Client-Secret.
Diese beiden Werte sind die eigenen Zugangsdaten der App. Mit ihnen kann ein Angreifer Tokens anfordern, als wäre er die App. SOCRadar weist darauf hin, dass die Lücke allein weder Admin-Zugriff verschafft noch das Ausführen von Code erlaubt.
Welche Versionen betroffen sind
SOCRadar nennt die Versionen und Fixes:
| Versionen | Status |
|---|---|
| Unter 0.45.2 | Verwundbar |
| 0.45.2 | Offizieller Fix: prüft die Subdomain anhand der DNS-Namensregeln |
| 0.53.0 bis 0.55.0 | Validierungslücke, unabhängig gemeldet, außerhalb von SAPs Sicherheitshinweis |
| 0.55.1 | Validierung wiederhergestellt |
Die Lücke in 0.53.0 bis 0.55.0 stammt allein von SOCRadar. SAPs Sicherheitshinweis deckt sie nicht ab, betrachten Sie also 0.55.1 oder neuer als sichere Untergrenze. Die GitHub-Seite des Projekts nennt 0.60.1 als neueste Version, datiert auf den 17. Oktober. Diese Version behebt einen separaten Fehler, eine URL-Path-Injection in einem Dokument-Client. Eine Version vom 9. Oktober korrigierte außerdem, wie Token-URLs für Mandanten gebildet werden.
SOCRadar meldete am 14. Oktober, dass keine Angriffe bekannt seien. Auch SecurityWeek schreibt, dass SAP keine Ausnutzung in freier Wildbahn meldet.
Der Rest von SAPs Oktober-Patchday
Die SDK-Lücke war eines von vier kritischen Problemen, berichten BleepingComputer und SecurityWeek:
| CVE | Produkt | Wert | Problem |
|---|---|---|---|
| CVE-2026-89111 | Cloud SDK for Python | 10.0 | OAuth2-SSRF, keine Anmeldung nötig |
| CVE-2026-89110 | NetWeaver Visual Composer | 9.9 | Fehlerhafte Zugriffskontrolle |
| CVE-2026-89107 | S/4HANA | 9.9 | Code-Injection durch Nutzer mit einer Fiori-Rolle |
| CVE-2026-89108 | Manufacturing Integration and Intelligence | 9.1 | Fehlende Berechtigungsprüfung |
Die Medien zählen das Paket unterschiedlich. BleepingComputer spricht von 20 Lücken, SecurityWeek von 22 neuen und aktualisierten Hinweisen, und SOCRadar zählt 16 neue Hinweise plus vier GitHub-Advisories.
Was das für Entwickler bedeutet
Wenn Sie eine mandantenfähige BTP-App in Python ausliefern, prüfen Sie noch heute Ihre Abhängigkeitsdatei. Suchen Sie nach dem SDK und notieren Sie dessen Version. Der Fix ist ein Bibliotheks-Upgrade, kein Server-Patch, deshalb erreicht er Nutzer erst, wenn Sie neu bereitstellen.
- Auf die neueste Version aktualisieren, die sowohl über 0.45.2 als auch über 0.55.1 liegt.
- Mandantennamen per Allowlist freigeben, wenn ein Upgrade noch nicht möglich ist. SAPs Sicherheitshinweis empfiehlt, „tenant_subdomain gegen eine bekannte Allowlist zu validieren“, berichtet BleepingComputer.
- Das Client-Secret im Zweifel rotieren. SOCRadar rät, den OAuth2-Token-Verkehr und die BTP-Audit-Logs zu prüfen. Wenn Sie Token-Anfragen an unbekannte Hosts sehen, gehen Sie davon aus, dass das Secret verloren ist.
- Die eigene Eingabeverarbeitung prüfen. Jeder Code, der eine URL aus einem vom Kunden gelieferten Wert baut, trägt dasselbe Risikomuster, egal welche Bibliothek er nutzt.
Single-Tenant-Apps, die nie eine Subdomain aus Nutzereingaben übernehmen, sind deutlich weniger gefährdet. Doch ein CVSS-Wert von 10.0 in einer Bibliothek wird leicht übersehen, weil kein SAP-Server-Patch das Problem für Sie behebt.
Quellen
- SAP warns of maximum severity OAuth2 SSRF security flaw - BleepingComputer
- SAP Patches Critical NetWeaver, S/4HANA Vulnerabilities - SecurityWeek
- CVE-2026-89111: Critical SAP Cloud SDK SSRF - SOCRadar
- SAP Cloud SDK for Python releases - GitHub
Ähnliche Artikel

Datenleck bei OpenCode Console legt gespeicherte Schlüssel für KI-Anbieter offen
Laut OpenCode traf ein Datenleck am 17. Oktober 2026 1,4 % der Nutzer von OpenCode Console. Ihre gespeicherten API-Schlüssel für OpenAI, Anthropic und Google könnten abgeflossen sein.

GitHubs Lizenz-Compliance für Open Source ist allgemein verfügbar
GitHubs Lizenz-Compliance für Open Source ist seit dem 16. Oktober 2026 allgemein verfügbar. Rulesets können damit Pull Requests blockieren, die nicht freigegebene Lizenzen hinzufügen.

Installationstoken für GitHub Apps sind jetzt JWTs mit 520 Zeichen
GitHub hat am 2. Oktober die Umstellung der Installationstoken für Apps auf ein zustandsloses Format abgeschlossen. Sie sind jetzt etwa 520 statt 40 Zeichen lang, alte Prüfungen können brechen.