SAP has disclosed a critical SSRF flaw in its Cloud SDK for Python that can exfiltrate OAuth2 client credentials. The vulnerability, tracked as CVE-2026-89111, affects multi-tenant applications on SAP Business Technology Platform (BTP) that use the Python SDK. An attacker must be able to control the tenant subdomain used by the SDK to identify the tenant a request targets.
SAP’s advisory states that, in effect, the SDK could route a token request to an attacker‑controlled server, potentially exposing the application’s client ID and client secret.
Evidence and affected releases are laid out in SAP’s security advisory. The peak CVSS score is 10.0. The August 2023 fix introduced a check rejecting non‑simple tenant subdomain names; however, several later releases did not consistently apply that check. Specifically, versions 0.53.0 through 0.55.0 (Sept 10–18, 2026) skipped the check for the Destination service module; 0.53.0 moved token request logic to shared code, and 0.55.1 reintroduced the subdomain validation.
SAP’s own tests, run by The Hacker News, showed that six releases prior to 0.55.1 failed multiple tests, while 0.55.1 and later passed all tests. As of 13 October, SAP’s advisory lists no version above 0.45.2 as affected, and it is unclear whether all intermediate releases fall under CVE-2026-89111.
What to do and how the flaw works are described: upgrade to 0.58.4, the latest PyPI release, or implement a tenant comparison against registered tenants if upgrading isn’t feasible. The vulnerability concerns how the token URL is constructed from the tenant subdomain, enabling an attacker‑controlled endpoint to receive credentials.