CVE-2026-48818: Kludex Starlette SSRF and NTLM credential theft in StaticFiles on Windows

CVE-2026-48818 · Severity: high · CVSS 7.5 · Published 2026-06-17

Starlette is a popular toolkit used to build web applications and APIs, including the FastAPI framework. In versions prior to 1.1.0 running on Windows, an attacker can trick the server into connecting to a malicious remote file share. This allows the attacker to capture the server's login credentials (NTLMv2 hashes), which can be used to impersonate the service or gain further access to the corporate network.

Technologies: Kludex Starlette-Auth-Toolkit, starlette (PyPI). Vendors: Kludex, PyPI.

Quick answers

Is CVE-2026-48818 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-48818 being exploited in the wild.
How severe is CVE-2026-48818?
High severity, with a CVSS score of 7.5, published 17 June 2026.
Which products and versions are affected?
Kludex Starlette-Auth-Toolkit < 1.1.0; starlette (PyPI) ECOSYSTEM:introduced=0,fixed=1.1.0.
Is there a fix for CVE-2026-48818?
Yes. starlette (PyPI): upgrade to 1.1.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-48818 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-48818?
Check whether you run Kludex Starlette-Auth-Toolkit or starlette (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • starlette (PyPI): upgrade to 1.1.0 or later
    pip install "starlette>=1.1.0"

Technical details

A Server-Side Request Forgery (SSRF) vulnerability exists in Starlette's StaticFiles component when running on Windows. The root cause is the use of `os.path.realpath` on user-supplied paths. When a UNC path (e.g., `\\attacker.com\share`) is provided, `os.path.join` in `lookup_path()` discards the intended base directory, and `os.path.realpath` subsequently initiates an outbound SMB connection to resolve the path. This occurs before any path containment checks are performed. An unauthenticated remote attacker can trigger this behavior to capture NTLMv2 hashes for offline cracking or relay attacks. The issue only affects Windows deployments where `follow_symlink` is set to False (the default). It is fixed in version 1.1.0 by rejecting paths starting with forward or backslashes.

Affected products

  • Kludex starlette < 1.1.0

Identifiers

  • CVE-2026-48818
  • GHSA-wqp7-x3pw-xc5r
  • PYSEC-2026-2281

Timeline

  • 2026-05-23: patched: Fix merged in PR #3287 and released in v1.1.0
  • 2026-06-17: disclosed: CVE-2026-48818 published

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.