CVE-2026-46526: local-deep-research: SSRF via URL parser differential bypass
GHSA-g23j-2vwm-5c25 MEDIUMlocal-deep-research v1.3.0–v1.6.9 contains an SSRF vulnerability where its URL validation logic is bypassed using a parser-differential trick: crafting URLs like `http://127.0.0.1:PORT\@public.ip` causes `urllib.parse.urlparse` to see a public IP (passing the security check) while `requests.get` silently connects to the internal address. The CVSS Scope Changed flag (S:C) signals that a low-privileged user can pivot the research agent beyond its process boundary to probe internal network services — cloud metadata endpoints (IMDS), adjacent containers, or internal APIs. No active exploitation or CISA KEV listing is recorded, and EPSS data is unavailable, but the PoC is a single crafted URL requiring no special tooling. Upgrade to v1.6.10 immediately; the fix aligns both parsers by switching host extraction to urllib3 (the same library requests uses internally) and rejects RFC 3986-forbidden characters such as backslash at the input layer.
What is the risk?
Medium CVSS (5.0) with an elevated operational risk in cloud and containerized AI deployments. Low privilege required and no user interaction needed broadens the attacker pool to any authenticated API caller. The Scope Changed vector means a successful SSRF can breach the agent's network boundary to reach cloud IMDS, adjacent databases, or internal model-serving APIs — resources with no direct internet exposure. No active exploitation evidence reduces urgency, but the trivial PoC and wide deployment of research agents in cloud-native environments justify prompt patching. Versions prior to v1.3.0 lacked any SSRF validator and are fully exploitable without the parser-differential trick.
Attack Kill Chain
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| local-deep-research | pip | < 1.6.10 | 1.6.10 |
Do you use local-deep-research? You're affected.
Severity & Risk
Attack Surface
What should I do?
5 steps-
Upgrade to local-deep-research v1.6.10 or later — PRs #3873, #3882, #3889, and #3932 are all merged and ship together in this release.
-
If immediate upgrade is blocked, reject any input URL containing backslash, ASCII control bytes, or whitespace at the application boundary (WAF rule or input sanitization layer).
-
Enable IMDSv2 (AWS) or equivalent metadata endpoint hardening to prevent credential leakage even if SSRF succeeds.
-
Audit network segmentation for all local-deep-research deployments — the agent should not have network-level access to internal-only APIs, databases, or cloud metadata addresses.
-
Review access and application logs for requests containing the literal string
\@in URL parameters as an indicator of prior exploitation attempts.
Classification
Compliance Impact
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-46526?
local-deep-research v1.3.0–v1.6.9 contains an SSRF vulnerability where its URL validation logic is bypassed using a parser-differential trick: crafting URLs like `http://127.0.0.1:PORT\@public.ip` causes `urllib.parse.urlparse` to see a public IP (passing the security check) while `requests.get` silently connects to the internal address. The CVSS Scope Changed flag (S:C) signals that a low-privileged user can pivot the research agent beyond its process boundary to probe internal network services — cloud metadata endpoints (IMDS), adjacent containers, or internal APIs. No active exploitation or CISA KEV listing is recorded, and EPSS data is unavailable, but the PoC is a single crafted URL requiring no special tooling. Upgrade to v1.6.10 immediately; the fix aligns both parsers by switching host extraction to urllib3 (the same library requests uses internally) and rejects RFC 3986-forbidden characters such as backslash at the input layer.
Is CVE-2026-46526 actively exploited?
No confirmed active exploitation of CVE-2026-46526 has been reported, but organizations should still patch proactively.
How to fix CVE-2026-46526?
1. Upgrade to local-deep-research v1.6.10 or later — PRs #3873, #3882, #3889, and #3932 are all merged and ship together in this release. 2. If immediate upgrade is blocked, reject any input URL containing backslash, ASCII control bytes, or whitespace at the application boundary (WAF rule or input sanitization layer). 3. Enable IMDSv2 (AWS) or equivalent metadata endpoint hardening to prevent credential leakage even if SSRF succeeds. 4. Audit network segmentation for all local-deep-research deployments — the agent should not have network-level access to internal-only APIs, databases, or cloud metadata addresses. 5. Review access and application logs for requests containing the literal string `\@` in URL parameters as an indicator of prior exploitation attempts.
What systems are affected by CVE-2026-46526?
This vulnerability affects the following AI/ML architecture patterns: AI research agents, agent frameworks, cloud-deployed AI pipelines.
What is the CVSS score for CVE-2026-46526?
CVE-2026-46526 has a CVSS v3.1 base score of 5.0 (MEDIUM).
AI Security Impact
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0037 Data from Local System AML.T0049 Exploit Public-Facing Application AML.T0053 AI Agent Tool Invocation Compliance Controls Affected
Technical Details
Original Advisory
Local Deep Research is an AI-powered research assistant for deep, iterative research. Prior to 1.6.10, the URL checking logic in local-deep-research has a logical flaw that could be bypassed by attackers, leading to SSRF attacks. The current project uses validate_url to validate the input URL. The main logic is to perform security checks on the host portion of the URL extracted by urlparse to prevent SSRF attacks. However, there are indeed differences in parsing between urlparse and the library that actually sends the request. For example, in safe_get, validate_url is first used to perform an SSRF check, and then requests.get is used to send the actual request. This vulnerability is fixed in 1.6.10.
Exploitation Scenario
An attacker with low-privileged access to a cloud-hosted local-deep-research deployment submits `http://169.254.169.254/latest/meta-data/iam/security-credentials/\@1.1.1.1` as a research source URL. The `validate_url` function calls `urlparse` which extracts `1.1.1.1` as the hostname and classifies it as a public address — validation passes. The `requests.get` call then connects to `169.254.169.254` (AWS IMDS) because urllib3 treats the backslash as a path character. The agent fetches and surfaces the IAM security credentials in its research output, which the attacker reads directly. Using the leaked credentials, the attacker pivots laterally to S3 buckets, model storage, or other AWS resources attached to the agent's instance role.
Weaknesses (CWE)
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N References
- github.com/LearningCircuit/local-deep-research/releases/tag/v1.6.10
- github.com/LearningCircuit/local-deep-research/security/advisories/GHSA-g23j-2vwm-5c25
- github.com/advisories/GHSA-g23j-2vwm-5c25
- github.com/LearningCircuit/local-deep-research/pull/3873
- github.com/LearningCircuit/local-deep-research/pull/3882
- github.com/LearningCircuit/local-deep-research/pull/3889
- github.com/LearningCircuit/local-deep-research/pull/3932
Timeline
Related Vulnerabilities
CVE-2025-67743 6.3 local-deep-research: SSRF allows internal network access
Same package: local-deep-research CVE-2025-53767 10.0 Azure OpenAI: SSRF EoP, no auth required (CVSS 10)
Same attack type: Data Extraction CVE-2023-3765 10.0 MLflow: path traversal allows arbitrary file read
Same attack type: Data Extraction CVE-2025-2828 10.0 LangChain RequestsToolkit: SSRF exposes cloud metadata
Same attack type: Data Extraction CVE-2026-21858 10.0 n8n: Input Validation flaw enables exploitation
Same attack type: Data Extraction