Skip to main content

Local Deep Research CVE-2025-67743

MEDIUM
Server-Side Request Forgery (SSRF) (CWE-918)
2025-12-23 security-advisories@github.com
6.5
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to application API
  2. Delivery
    Submit malicious internal/metadata URL via resource endpoint
  3. Exploit
    Trigger download of stored resource
  4. Execution
    Server issues raw requests.get() bypassing SSRF filter
  5. Impact
    Exfiltrate cloud credentials or internal reconnaissance data

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V4 - API and Web Service URL allowlisting, SSRF prevention
MITRE ATT&CK

2 techniques across 2 tactics: Initial Access, Credential Access

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires authenticated access to the application API (PR:L): the attacker must be able to POST a crafted URL to /api/resources/<research_id> and then invoke /library/api/download/<resource_id> to trigger the download. It affects Local Deep Research versions 1.3.0 up to (but not including) 1.3.9, where download_service.py uses raw requests.get() instead of the existing safe_requests.py wrapper. Realized confidentiality impact is LIMITED by the deployment: the attacker only gains value if the host can actually reach sensitive internal services or cloud provider metadata endpoints (AWS/GCP/Azure 169.254.169.254), and the advisory explicitly notes impact depends on 'surrounding controls.' No user interaction is required, and no special non-default feature toggle is needed - the download service is standard functionality.

Impact

This is a genuine but moderate-priority SSRF (CWE-918) in Local Deep Research versions 1.3.0 to before 1.3.9. The signals are internally consistent rather than conflicting: the CVSS 3.1 vector (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N, base 6.5) indicates network-reachable, low-complexity exploitation requiring low-level privileges (PR:L), with high confidentiality impact and no integrity or availability impact - consistent with an SSRF that reads internal/metadata responses but does not alter or disrupt the system. Publicly available exploit code exists (the GHSA advisory includes a detailed PoC), which raises practical exploitability, but this should not be conflated with active exploitation. The EPSS score is low (0.32%, 23rd percentile) and the CVE is NOT on CISA KEV, so there is no public exploit identified as actively used in the wild. The net picture is a real, verifiable flaw with a working PoC but a limited real-world footprint and no evidence of mass exploitation - prioritize patching for anyone running this product, especially in cloud environments where metadata endpoints are reachable, but it is not an emergency-tier internet-wide threat. One nuance to verify: the advisory states impact 'depends on the deployment and surrounding controls,' so actual confidentiality impact (C:H) hinges on whether sensitive internal services or cloud metadata endpoints are actually reachable from the host.

Exploit ScenarioDerived

An attacker with authenticated API access submits a malicious URL (e.g., http://169.254.169.254/latest/meta-data/) via POST /api/resources/<research_id>, which is stored without SSRF validation. The attacker then triggers /library/api/download/<resource_id>, causing download_service.py to fetch the URL via raw requests.get(), bypassing the application's safe_requests SSRF protection and returning cloud metadata or internal service responses. A public PoC demonstrating this chain with a mock internal service is published in the GHSA advisory.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 19, 2026

Server-side request forgery in Local Deep Research 1.3.0 through 1.3.8 lets an authenticated API user submit a crafted resource URL that the download service later fetches with raw requests.get(), bypassing the application's own SSRF validator. Exploitation requires posting the URL to /api/resources/<research_id> and triggering /library/api/download/<resource_id> (CVSS PR:L, no user interaction); realized impact is confidentiality-only and depends on whether the host can actually reach internal services or cloud metadata endpoints such as 169.254.169.254. Publicly available exploit code exists via the GHSA-9c54-gxh7-ppjc write-up and PoC, EPSS is a low 0.32% (23rd percentile), and there is no CISA KEV listing - no public exploit identified at time of analysis as being actively exploited.

RemediationAI

Upgrade to Local Deep Research 1.3.9, which routes all download-service traffic through safe_get/safe_post/SafeSession and adds a pre-commit/CI AST guard against reintroducing raw requests calls (commit https://github.com/LearningCircuit/local-deep-research/commit/b79089ff30c5d9ae77e6b903c408e1c26ad5c055, advisory https://github.com/LearningCircuit/local-deep-research/security/advisories/GHSA-9c54-gxh7-ppjc). Vendor-released patch: 1.3.9. Where upgrading is not immediate, enforce egress filtering at the container or network-policy layer to block 169.254.169.254/32, 127.0.0.0/8, and RFC1918 ranges from the app - trade-off is that legitimate self-hosted research targets on private networks stop resolving, so scope the deny rules to the metadata IP first. Enforce IMDSv2 (or disable the metadata service / use workload identity) so a successful SSRF yields no usable credentials, at the cost of reworking any IMDSv1-dependent tooling. Restrict who can call POST /api/resources/<research_id> and /library/api/download/<resource_id> to trusted accounts via reverse-proxy auth, or disable the research library download feature entirely for untrusted users - this removes legitimate download functionality. Because exploitation is authenticated (PR:L), auditing and rotating credentials of any low-privilege account that could reach those endpoints is prudent.

Affected Packages

pypi local-deep-research fix: 1.3.9

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in pypi

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The flaw is CWE-918 (Server-Side Request Forgery). Local Deep Research already ships an SSRF defense layer - security/safe_requests.py, which wraps outbound HTTP through security/ssrf_validator.py and blocks loopback (127.0.0.0/8), RFC1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16), link-local addresses, and the classic AWS instance metadata IP 169.254.169.254. The research_library download service (src/local_deep_research/research_library/services/download_service.py, roughly lines 1038-1298) simply never routed through that wrapper: nine call sites use bare requests.get() for generic downloads, API lookups, PDF retrieval, and Europe PMC/PubMed eLink and eSummary endpoints. Because URLs are persisted by resource_service.py:add_resource() without validation and fetched later, the trust boundary is broken in two places - no validation at ingest and no validation at fetch time. The upstream fix (commit b79089ff30c5d9ae77e6b903c408e1c26ad5c055) migrates those calls to safe_get/safe_post/SafeSession and adds a CI/pre-commit AST hook (.pre-commit-hooks/check-safe-requests.py) plus new security test suites (test_ssrf_validator.py, test_safe_requests_hook.py) that fail the build on any direct requests.get/post/Session usage, with an allowlist only for the wrapper itself and test files.

Know when Local Deep Research gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
vuln.today AI 6.5 MEDIUM

Network-reachable API with low complexity but requires authenticated access to add/trigger resources (PR:L); SSRF discloses internal/metadata data (C:H) with no integrity or availability impact.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

DescriptionNVD

Local Deep Research is an AI-powered research assistant for deep, iterative research. In versions from 1.3.0 to before 1.3.9, the download service (download_service.py) makes HTTP requests using raw requests.get() without utilizing the application's SSRF protection (safe_requests.py). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls. This issue has been patched in version 1.3.9.

Threat Intelligence Overview

EPSS Score
0.3%
Top 77% exploitable
Prevalence
Low
niche open-source AI research assistant, limited enterprise deployment footprint
Exploit
POC
Public exploit code exists
Data Quality
4 sources
Confidence: Medium

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC Yes
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
Poc
System Exposure· derived
Open
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

52
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: +20
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Server-Side Request Forgery exploits applications that fetch remote resources based on user-supplied URLs.

Affected Products (CPE)NVD

cpe:2.3:a:learningcircuit:local_deep_research:*:*:*:*:*:*:*:*

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy