Path Traversal in Agent Memory Module of SAP Cloud SDK for Python
Affects sap-cloud-sdk Python package versions older than 0.50.0 when the agent_memory module's create_client(tenant=...) is given a caller-supplied tenant value. Fixed in 0.50.0.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
- Exploited
- No known exploitation
- Fix
- Fixed in 0.50.0
- Who is exposed
- Not reported
Do first: Upgrade to a fixed version: 0.50.0.
- Last modified
- Whether it needs action now or is a reference record, by fixed rules, with why. Last checked is when cve.now last re-read it.What do these mean? →
- Reference
- Last checked
- FIRST's estimate of the chance attackers exploit it in the next 30 days, updated daily.What do these mean? →
- 0.45% · 39th percentile
- A 0-100 score for how much a CVE matters across the industry: exploitation, exposure, how widely the software is used, severity and whether a fix exists.What do these mean? →
- 25/100 · provisional
- How many real-world setups can hit the bug, from the vendor's advisory and CISA data. It does not know your setup.What do these mean? →
- Unclear
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
A path traversal flaw in the agent_memory module of SAP Cloud SDK for Python lets a remote attacker, without logging in, use a crafted tenant value to access another tenant's mounted credentials, including OAuth client IDs and client secrets. The module does not validate the tenant value before using it to build file paths.
Read the original description
The agent_memory module accepts a caller-supplied tenant parameter in create_client(tenant=...). Prior to version 0.50.0, the tenant parameter was not validated before being used to construct filesystem paths for secret resolution. A value containing path traversal sequences (for example, attacker-corp/../victim-corp) could cause the resolved path to escape the intended directory and access another tenant's secrets under:Plain Text/etc/secrets/appfnd/hana-agent-memory/<tenant>/Successful exploitation could allow unauthorized access to another tenant's mounted credentials, including OAuth client IDs and client secrets. This vulnerability could enable cross-tenant access to sensitive credentials.
cve.now Index
- Exploitation?/40Unknown. No CISA SSVC exploitation rating yet
- Exposure17/25No login or user action needed, reachable over the network without a login · Unknown: Advisories don't say whether default setups are affected
- Reach?/20Unknown. No tracked technology or package matched
- Severity7.5/10CVSS 7.5
- No patch0/5No signal
What would change the score
- Would score about 70 if added to CISA KEV
- Would score about 65 if CISA's SSVC rates exploitation active
- Would score about 30 if advisories confirm default setups are exposed
What to do
Upgrade to a fixed version: 0.50.0.
Workaround: Validate tenant values against an allowlist of registered tenant subdomains before passing them to SDK APIs.
Check your systems with an agent
Paste this into a coding or ops agent. It checks your systems read-only and reports a table per asset.
Check whether my systems are affected by CVE-2026-120013 (Path Traversal in Agent Memory Module of SAP Cloud SDK for Python), using the cve.now data below. Rules: work read-only. Do not run exploit code, proof-of-concept scripts or scanners that send attack payloads, and do not change any configuration, package, image or deployment. Report findings only. What cve.now has for CVE-2026-120013 (entry last updated 2026-11-10): Affected: - SAP_SE SAP Cloud SDK for Python: fixed in 0.50.0 Fixed versions: 0.50.0. Conditions (all must be true for the bug to be hit): - Affected when the sap-cloud-sdk Python package is older than version 0.50.0 (source: https://github.com/SAP/cloud-sdk-python/security/advisories/GHSA-28c8-457r-4cf6) - The agent_memory module's create_client(tenant=...) accepts a caller-supplied tenant value that is used to build filesystem paths for secret resolution (source: https://github.com/SAP/cloud-sdk-python/security/advisories/GHSA-28c8-457r-4cf6) Setup: unknown whether the bug needs a non-default feature or setting. Check the advisory. Attacker needs: network access, no login, no user action. Workaround: Validate tenant values against an allowlist of registered tenant subdomains before passing them to SDK APIs. (source: https://github.com/SAP/cloud-sdk-python/security/advisories/GHSA-28c8-457r-4cf6) CISA KEV: CVE-2026-120013 is not listed as of cve.now's last read. This KEV status is for CVE-2026-120013 only. If you also check another CVE, look up its own KEV status; never assume it from this one. How to check: - Installed software: check what is actually running, not what a repo declares. Read the version from each host, container image and Kubernetes node (the binary's version output, the OS package database, image layers), and check whether the conditions above hold there. Distribution packages may carry a backported fix under an older version number; confirm against the distribution's own advisory. Verify against the linked advisories before concluding, and cite the date you read each one: - https://github.com/SAP/cloud-sdk-python/security/advisories/GHSA-28c8-457r-4cf6 - https://url.sap/sapsecuritypatchday - https://github.com/SAP/python-pyodata/security/advisories/GHSA-28c8-457r-4cf6 Do not conclude an asset is unaffected unless you checked it and the evidence covers both its version and the conditions above. If you could not check something, mark it unknown and say what is missing. Report a table with one row per asset and these columns: Asset | Version or build | Status (affected, fixed, not applicable, unknown) | Compensating controls | Exposure (internet-facing, internal, none) | Evidence | Next action. Entry: https://cve.now/CVE-2026-120013 For follow-up questions, use the cve.now MCP server at https://mcp.cve.now/mcp (no authentication), for example get_vulnerability with id CVE-2026-120013.
Timeline
- CVE published
- Record last updated
- First seen by cve.now
Affected versions
- SAP_SE SAP Cloud SDK for Python
fixed in 0.50.0
Evidence 5
Vendor advisory · 2
Establishes: Affected and fixed versions.
- Advisory
- Advisory
CVE record · 2
Establishes: The identifier and description.
- Record
- Record
Other links · 1
- Link
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about CVE-2026-120013
Is CVE-2026-120013 being exploited?
It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data
What does this mean?
A crafted tenant value can use path traversal to reach secret files that belong to another tenant, including OAuth client IDs and client secrets. The fix makes the SDK validate tenant input before it builds the secret file paths.Source: github.com
Which versions are affected by CVE-2026-120013?
SAP Cloud SDK for Python: before 0.50.0.Source: cve.now feed data
Am I affected, and how do I check?
The advisory lists sap-cloud-sdk for Python versions older than 0.50.0. The setup at risk is use of the agent_memory module's create_client(tenant=...) with a tenant value that comes from the caller. To check, look at the installed sap-cloud-sdk version in your environment, for example with pip show sap-cloud-sdk.Source: github.com
How do I fix CVE-2026-120013?
Upgrade the sap-cloud-sdk Python package to version 0.50.0 or later, which validates tenant input before resolving secret paths. If an upgrade is not possible yet, see the workaround in the advisory: validate tenant values against an allowlist of registered tenant subdomains before passing them to SDK APIs.Source: github.com