LMDeploy URL parser disagreement permits SSRF filter bypass
Affects LMDeploy 0.12.3 up to but not including 0.15.0 in apps that fetch attacker-supplied URLs with requests.Session().get after validating them with _is_safe_url. Fixed in 0.15.0.
Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.
- Exploited
- No known exploitation
- Fix
- Fixed in 0.15.0
- Who is exposed
- Not reported
Do first: Upgrade to a fixed version: 0.15.0.
- Last modified
- 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? →
- 35/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
LMDeploy, a toolkit for compressing, deploying, and serving large language models, is affected by a URL parsing flaw in its remote media URL check. An attacker can remotely, without logging in, supply a URL that passes validation but makes the server request an internal HTTP service, potentially exposing data from that service.
Read the original description
LMDeploy is a toolkit for compressing, deploying, and serving large language models. From 0.12.3 until 0.15.0, _is_safe_url validates remote media URLs with urlparse while requests.Session().get interprets backslashes differently when sending the request. An attacker can provide a URL whose validation hostname appears globally routable but whose request destination resolves to an internal host, bypassing non-global address checks. Applications that accept attacker-controlled remote media URLs can therefore be induced to access internal HTTP services and expose data available from those services. This issue is fixed in version 0.15.0.
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
- Reach10/20Affects PyPI packages
- Severity7.5/10CVSS 7.5
- No patch0/5No signal
What would change the score
- Would score about 80 if added to CISA KEV
- Would score about 75 if CISA's SSVC rates exploitation active
- Would score about 40 if advisories confirm default setups are exposed
Impact
- Widely used
lmdeploy has 9.2k weekly downloads.Source: pypistats.org
1 packages depend on lmdeploy.Source: deps.dev
What to do
Upgrade to a fixed version: 0.15.0.
Timeline
- CVE published
- First seen by cve.now
Affected versions
- InternLM lmdeploy
From 0.12.3 · fixed in 0.15.0
- lmdeployPyPI
From 0.12.3 · fixed in 0.15.0
Fixed in 0.15.0 (released Jul 31, 2026, 101 days before disclosure).
The latest release, 0.18.0, is not affected.
Evidence 4
- Advisory
- Repository
- Repository
- Repository
Corrections
None so far.
Something wrong on this page? Report an error. Every fix is listed here.
Questions about CVE-2026-123818
Is CVE-2026-123818 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?
The URL check in LMDeploy and the request library read the same URL differently. A crafted URL can pass the safety check and then be fetched as an internal address, so the server can reach internal hosts and read data from them.Source: github.com
Which versions are affected by CVE-2026-123818?
lmdeploy: from 0.12.3 before 0.15.0. lmdeploy (PyPI): from 0.12.3 before 0.15.0.Source: cve.now feed data
Am I affected, and how do I check?
LMDeploy versions 0.12.3 up to but not including 0.15.0 are affected. To check an installed version, run pip show lmdeploy. The affected setup is an application that fetches attacker-supplied URLs with requests.Session().get after validating them with _is_safe_url.Source: github.com
How do I fix CVE-2026-123818?
Upgrade LMDeploy to 0.15.0 or later, which contains the fix.Source: github.com