{"id":"CVE-2026-43979","summary":"Local Deep Research: HTML Injection via Unescaped User Input in PDF Export (`pdf_service.py:_markdown_to_html`)","details":"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.","aliases":["GHSA-fj2m-qvh9-jq4q"],"modified":"2026-07-08T08:13:29.638540825Z","published":"2026-05-28T17:59:19.443Z","database_specific":{"cwe_ids":["CWE-79","CWE-918"],"cna_assigner":"GitHub_M","osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43979.json"},"references":[{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/43xxx/CVE-2026-43979.json"},{"type":"ADVISORY","url":"https://github.com/LearningCircuit/local-deep-research/security/advisories/GHSA-fj2m-qvh9-jq4q"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-43979"},{"type":"FIX","url":"https://github.com/LearningCircuit/local-deep-research/pull/3082"},{"type":"FIX","url":"https://github.com/LearningCircuit/local-deep-research/pull/3613"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/learningcircuit/local-deep-research","events":[{"introduced":"0"},{"fixed":"48941aaf4bf90725e580b341b7c0fdff07e7d2b1"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.6.0"}],"source":"AFFECTED_FIELD"}}],"versions":["v1.5.6","v1.5.2","v1.5.5","v1.5.4","v1.5.3","v1.5.1","v1.5.0","v1.4.0","v1.3.60","v1.3.59","v1.3.58","v1.3.57","v1.3.56","v1.3.55","v1.3.54","v1.3.53","v1.3.52","v1.3.51","v1.3.50","v1.3.49","v1.3.48","v1.3.47","v1.3.46","v1.3.45","v1.3.44","v1.3.43","v1.3.42","v1.3.41","v1.3.40","v1.3.39","v1.3.35","v1.3.34","v1.3.33","v1.3.32","v1.3.31","v1.3.30","v1.3.29","v1.3.28","v1.3.27","v1.3.25","v1.3.26","v1.3.24","v1.3.23","v1.3.22","v1.3.21","v1.3.20","v1.3.19","v1.3.18","v1.3.17","v1.3.16","v1.3.15","v1.3.14","v1.3.13","v1.3.12","v1.3.11","v1.3.10","v1.3.9","v1.3.7","v1.3.8","v1.3.6","v1.3.5","v1.3.4","v1.3.3","v1.3.2","v1.3.1","v1.3.0","v1.2.28","v1.2.27","v1.2.26","v1.2.25","v1.2.24","v1.2.23","v1.2.22","v1.2.21","v1.2.20","v1.2.19","v1.2.18","v1.2.17","v1.2.16","v1.2.15","v1.2.14","v1.2.13","v1.2.12","v1.2.11","v1.2.10","v1.2.9","v1.2.2","v1.2.8","v1.2.7","v1.2.6","v1.2.5","v1.2.4","v1.2.3","v1.2.1","v1.2.0","v1.1.11","v1.1.10","v1.1.9","v1.1.6","v1.1.8","v1.1.7","v1.1.5","v1.1.4","v1.1.3","v1.1.2","v1.1.1","v1.1.0","v1.0.2","v1.0.1","v1.0.0","0.6.7","v0.6.6","v0.6.5","v0.6.4","v0.6.1","v0.6.0","v0.5.9","v0.5.7","v0.5.6","v0.5.5","v0.5.4","v0.5.3","v0.5.2","v0.5.1","v0.5.0","v0.4.4"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-43979.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:L/I:N/A:N"}]}