Local Deep Research: HTML Injection via Unescaped User Input in PDF Export (`pdf_service.py:_markdown_to_html`)
Key facts
- Attack vector
- Network
- Privileges required
- Low
- User interaction
- None
- Attack complexity
- Low
- Impact type
- Cross-site scripting, Information disclosure
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub. Impact type from CWE-79, CWE-918 and the CVSS impact.
Summary
Local Deep Research is an AI-powered research assistant for deep, iterative research. Prior to 1.6.0, PDFService._markdown_to_html() constructs an HTML document by interpolating user-controlled values — specifically title (sourced from research.title or research.query) and metadata key-value pairs — directly into an f-string without any HTML escaping. An authenticated attacker can craft a research query containing HTML special characters to inject arbitrary HTML tags into the document processed by WeasyPrint during PDF export. This injection can be chained to trigger a Server-Side Request Forgery (SSRF), bypassing the application's existing SSRF defenses in ssrf_validator.py. This vulnerability is fixed in 1.6.0.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| LearningCircuit | local-deep-research | before 1.6.0 | 1.6.0 | Patch available | CNA |
| — | local-deep-research (PyPI) | before 1.6.0 | 1.6.0 | Patch available | GHSA-fj2m-qvh9-jq4q |
- local-deep-research VendorLearningCircuit Affected before 1.6.0 Fixed in 1.6.0 Patch available CNA
- local-deep-research (PyPI) Vendor— Affected before 1.6.0 Fixed in 1.6.0 Patch available GHSA-fj2m-qvh9-jq4q
Remediation
- Fix · CNA local-deep-research (LearningCircuit) Fixed in 1.6.0
- Fix · GHSA-fj2m-qvh9-jq4q local-deep-research (PyPI) Fixed in 1.6.0 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2026-43979
- 2026-10-03 Alias added: GHSA-fj2m-qvh9-jq4q
References
Other 6
- https://github.com/LearningCircuit/local-deep-research/security/advisories/GHSA-fj2m-qvh9-jq4q
- https://github.com/LearningCircuit/local-deep-research/pull/3082
- https://github.com/LearningCircuit/local-deep-research/pull/3613
- https://github.com/LearningCircuit/local-deep-research/commit/0148fa265a3da460c07def7441f9ac49ea61fbcb
- https://github.com/LearningCircuit/local-deep-research/commit/15f13d5c79847f1c38c2dc67bd0027c38af9e34b
- https://github.com/LearningCircuit/local-deep-research
More LearningCircuit vulnerabilities
- TI-2025-41439 Local Deep Research is Vulnerable to Server-Side Request Forgery (SSRF) in Download Service CVSS 3.1MEDIUM 6.5
- TI-2026-34213 Local Deep Research: SSRF bypass in `safe_get` CVSS 3.1MEDIUM 5.0
- TI-2025-35689 Local Deep Research's API keys are stored in plain text CVSS 4.0MEDIUM 6.9
Sources
- CVE-2026-43979 · CVE Program
- CVE-2026-43979 · NVD
- FIRST EPSS
- GHSA-fj2m-qvh9-jq4q · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences