Description
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.
Problem types
CWE-79: Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')
CWE-918: Server-Side Request Forgery (SSRF)
Product status
References
github.com/...search/security/advisories/GHSA-fj2m-qvh9-jq4q
github.com/...search/security/advisories/GHSA-fj2m-qvh9-jq4q
github.com/LearningCircuit/local-deep-research/pull/3082
github.com/LearningCircuit/local-deep-research/pull/3613