Starlette is a lightweight ASGI framework/toolkit.
CVE-2026-48818
Summary When serving static files on Windows, StaticFiles resolves the requested path with [os.path.realpath](https://docs.python.org/3/library/os.path.html#os.path.realpath). If a UNC path (such as \\attacker.com\share) reaches the resolver, realpath causes the process to open a connection to the remote host over SMB (port 445). This is a server-side request forgery (SSRF) that leaks the service account's NTLMv2 credentials to the attacker-controlled host, which can then be cracked offline or relayed to other hosts. Details StaticFiles.lookuppath() joins the requested path onto the served directory and calls [os.path.realpath](https://docs.python.org/3/library/os.path.html#os.path.realpath) on the result before checking containment with [os.path.commonpath](https://docs.python.org/3/library/os.path.html#os.path.commonpath). On Windows, a UNC path is absolute, so [os.path.join](https://docs.python.org/3/library/os.path.html#os.path.join) discards the served directory and realpath resolves the bare UNC path, triggering the outbound SMB connection and NTLM authentication before the containment check rejects the path. The HTTP response is a benign 404, but the credential disclosure…
Assessment
- CVSS
- 7.5 (v3.1)
- Severity
- High
- EPSS
- 0.37% chance of exploitation in the next 30 days
- Known exploited
- Not listed in CISA KEV
- Exploit availability
- Nothing found in Exploit-DB, Metasploit, Nuclei or public PoC repositories
- Published
- 15 June 2026
- Last updated
- 26 October 2026
- Weakness
- CWE-918
- Assigner
- security-advisories@github.com
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
At the source
References
- https://github.com/Kludex/starlette/commit/fd53168a7767b6b55ba5af787fd88f49e33cabc5
- https://github.com/Kludex/starlette/pull/3287
- https://github.com/Kludex/starlette/releases/tag/1.1.0
- https://github.com/Kludex/starlette/security/advisories/GHSA-wqp7-x3pw-xc5r
- https://github.com/pypa/advisory-database/tree/main/vulns/starlette/PYSEC-2026-2281.yaml
- https://access.redhat.com/errata/RHSA-2026:30087
- https://access.redhat.com/errata/RHSA-2026:30088
- https://access.redhat.com/errata/RHSA-2026:30089
- https://access.redhat.com/security/cve/CVE-2026-48818
- https://bugzilla.redhat.com/show_bug.cgi?id=2490020
- https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-48818.json
- https://github.com/advisories/GHSA-wqp7-x3pw-xc5r
Community proofs of concept
No community proof of concept yet. If you have one for a published vulnerability and the right to share it, add it below — it will appear here once reviewed.
Submit a proof of concept
Only for publicly disclosed vulnerabilities, and only material from testing you were authorised to perform. This platform does not buy, sell, or broker exploits — see earning from vulnerability research for legitimate bounty programs. Submissions are reviewed before they appear. Text only; do not include live credentials, personal data, or anything targeting systems you are not permitted to test.
Query this programmatically
Agents can read this through the MCP endpoint, or over HTTP:
curl https://cve.zerocrew.in/api/cve/CVE-2026-48818