Threat reportVulnerabilityTL-2026-3414

SAP Cloud SDK for Python OAuth2 SSRF credential theft (CVE-2026-89111)

criticalACTIVE

SAP Cloud SDK for Python OAuth2 SSRF credential theft (TL-2026-3414), also tracked as GHSA-4mv3-jxxm-9cx2, is a critical-severity software vulnerability scored CVSS 10, first published 2026-10-13 and last reviewed 2026-10-15. It has no confirmed attribution, affects SAP SAP Cloud SDK for Python (sap-cloud-sdk), references 3 CVEs (CVE-2026-89111, CVE-2026-89110, CVE-2026-89108), maps to 6 MITRE ATT&CK techniques (T1078.004, T1136, T1190), and is covered by 9 detection rules and 15 indicators of compromise.

CVSS
10/10Critical
CVEs
3Referenced vulnerabilities
Techniques
6MITRE ATT&CK
Actors
0Not attributed
Detection rules
9SPL · KQL · Sigma
IOCs
15Indicators of compromise

Key facts for TL-2026-3414

Threat ID
TL-2026-3414
Also known as
GHSA-4mv3-jxxm-9cx2
Severity
CRITICAL
CVSS
10 (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N)
Status
ACTIVE
Category
VULNERABILITY
First published
Last reviewed
Attribution confidence
LOW
Motivation
UNKNOWN
Target sectors
technology, manufacturing, enterprise, cloud services
Target regions
Global
Detection rules
9
Indicators of compromise
15
Updates
2026-10-15 · revalidated 1× · latest source

Malware and tooling in SAP Cloud SDK for Python OAuth2 SSRF credential theft

Malware and tooling: Python, SAP Cloud SDK for Python

How SAP Cloud SDK for Python OAuth2 SSRF credential theft works

SAP disclosed a maximum-severity (CVSS 10.0) OAuth2 server-side request forgery flaw in the SAP Cloud SDK for Python (sap-cloud-sdk < 0.45.2) affecting multi-tenant SAP BTP applications. An unauthenticated remote attacker who controls the tenant_subdomain parameter can redirect OAuth2 token requests to an attacker-controlled server and exfiltrate client credentials.

CVE-2026-89111 (CWE-918) affects the SAP Cloud SDK for Python, versions prior to 0.45.2, when used in multi-tenant SAP Business Technology Platform (BTP) applications. The SDK substitutes a tenant_subdomain value into the OAuth2 token URL without sufficient validation. An attacker who can influence this parameter can cause the application to send its OAuth2 token request, including client credentials, to a server the attacker controls. NVD scores the flaw CVSS 3.1 10.0 (AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N).

The fix in sap-cloud-sdk 0.45.2 validates tenant_subdomain against RFC 1123 DNS label rules before it is substituted into token URLs. For consumers that cannot upgrade immediately, SAP and the GitHub advisory (GHSA-4mv3-jxxm-9cx2) recommend validating tenant_subdomain against a known allowlist of registered tenant subdomains before passing it to any SDK call. The advisory credits reporter @SunandM and includes no proof-of-concept code. The sources report no confirmed in-the-wild exploitation, no IOCs and no attribution for this CVE.

The October 2026 SAP Security Patch Day (20 flaws fixed) also fixed two other critical issues. CVE-2026-89110 (CVSS 9.9, CWE-749) is missing authorization in SAP NetWeaver Visual Composer VC70RUNTIME 7.50. A low-privileged attacker can invoke internal operations on a preconfigured remote system (SAP Note 3797111). CVE-2026-89108 (CVSS 9.1, CWE-862) is missing authorization in SAP Manufacturing Integration and Intelligence XMII 15.4 and 15.5. An attacker with MII administrator credentials can provision a privileged account on the underlying Java application server (SAP Note 3798788). BleepingComputer notes that the earlier maximum-severity SAP flaws CVE-2026-58231 (Commerce Cloud, August 2026) and CVE-2026-44756 (SAP Kernel, September 2026; Onapsis research) were actively exploited. It also notes that CISA tracks 14 SAP flaws in its KEV catalog. Status ACTIVE reflects the exposure window for unpatched deployments, not confirmed exploitation.

MITRE ATT&CK techniques used in TL-2026-3414

Defense Evasion

T1078.004 Valid Accounts: Cloud Accounts

Persistence

T1136 Create Account

Initial Access

T1190 Exploit Public-Facing Application

Credential Access

T1212 Exploitation for Credential Access; T1528 Steal Application Access Token

Lateral Movement

T1550.001 Use Alternate Authentication Material: Application Access Token

Affected products and versions in SAP Cloud SDK for Python OAuth2 SSRF credential theft

  • SAP — SAP Cloud SDK for Python (sap-cloud-sdk)
    Vulnerable versions: < 0.45.2
    Fixed in: 0.45.2
  • SAP — SAP NetWeaver Visual Composer (VC70RUNTIME)
    Vulnerable versions: 7.50
    Fixed in: See SAP Note 3797111
  • SAP — SAP Manufacturing Integration and Intelligence (XMII)
    Vulnerable versions: 15.4; 15.5
    Fixed in: See SAP Note 3798788

Remediation for SAP Cloud SDK for Python OAuth2 SSRF credential theft

Patches

  • Upgrade sap-cloud-sdk to 0.45.2 or later (CVE-2026-89111)
  • Apply SAP Note 3797111 for CVE-2026-89110 (NetWeaver Visual Composer)
  • Apply SAP Note 3798788 for CVE-2026-89108 (Manufacturing Integration and Intelligence)

Immediate actions

  • Validate tenant_subdomain against an allowlist of registered tenant subdomains before passing it to any SAP Cloud SDK call
  • Inventory Python applications on SAP BTP that depend on sap-cloud-sdk and handle multi-tenant requests
  • Rotate OAuth2 client credentials for any multi-tenant BTP application that accepted untrusted tenant_subdomain values

Workarounds

  • Allowlist-validate tenant_subdomain in consumer application code until the SDK is upgraded

Longer-term hardening

  • Enforce RFC 1123 DNS label validation on all tenant-supplied hostname components
  • Restrict egress from BTP application runtimes to expected identity-provider hosts
  • Monitor outbound OAuth2 token requests for unexpected destination hosts

CVEs associated with SAP Cloud SDK for Python OAuth2 SSRF credential theft

CVE-2026-89111, CVE-2026-89110, CVE-2026-89108

Weaknesses (CWE) in SAP Cloud SDK for Python OAuth2 SSRF credential theft

CWE-918, CWE-749, CWE-862

Timeline of SAP Cloud SDK for Python OAuth2 SSRF credential theft

  • Earlier maximum-severity SAP Commerce Cloud flaw CVE-2026-58231 reported as actively exploited (August 2026), per BleepingComputer; unrelated to CVE-2026-89111
  • sap-cloud-sdk 0.45.2 released with tenant_subdomain validation (RFC 1123 DNS label check) fixing the SSRF.
  • Maximum-severity SAP Kernel flaw CVE-2026-44756 (OVERPASS, discovered by Onapsis) disclosed in September 2026, with about 10,000 internet-exposed systems; unrelated to CVE-2026-89111
  • Token-request code moved into shared code in release 0.53.0, removing the tenant_subdomain validation and re-introducing the flaw (releases 0.53.0-0.55.0 vulnerable).
  • sap-cloud-sdk 0.55.1 released, restoring validation in the shared token-requesting code.
  • BleepingComputer reports SAP's warning about the OAuth2 SSRF flaw; no in-the-wild exploitation or public PoC reported
  • CVE-2026-89110 (NetWeaver Visual Composer, CVSS 9.9) and CVE-2026-89108 (Manufacturing Integration and Intelligence, CVSS 9.1) published in the same patch cycle
  • GitHub Security Advisory GHSA-4mv3-jxxm-9cx2 and NVD publish CVE-2026-89111 (CVSS 10.0, CWE-918); reporter credited as @SunandM
  • SAP October 2026 Security Patch Day releases fixes for 20 flaws, including sap-cloud-sdk 0.45.2 for CVE-2026-89111
  • SOCRadar publishes analysis noting validation gaps in 0.53.0-0.55.0; Mend record updated (CVSS v4 9.9, EPSS 0.27); no confirmed exploitation and no CISA KEV listing.

Update history for TL-2026-3414

Sources cited for SAP Cloud SDK for Python OAuth2 SSRF credential theft

Detection coverage for TL-2026-3414

As of 2026-10-15, Threadlinqs Intelligence publishes 9 detection rule(s) for TL-2026-3414 across Splunk SPL, Microsoft KQL and Sigma, covering 15 indicator(s) of compromise. The whole corpus is readable without an account; a free account unlocks full detection query text in Splunk SPL, Microsoft KQL and Sigma; paid tiers add raw indicator values, correlation and the MCP server. Threadlinqs MCP server · View plans.

9 detection rules (Splunk SPL, Microsoft KQL, Sigma) · Blue and above. Compare plans
15 indicators of compromise · Red and above. Compare plans

Threadlinqs Intelligence — Real-Time Threat Detection Platform

[ 0 threats ] [ 0 det ] [ CRIT: 0 ] [ HIGH: 0 ]
// threat_feed
$ sort --newest
Showing all threats

Live intelligence console

Threat level
Fig. 01 · Threat weatherIndexing the archive…
1 square = 1 threat · click to open

Latest Threats