CVE-2026-43979: LearningCircuit Local Deep Research HTML injection and SSRF in PDF export

CVE-2026-43979 · Severity: medium · CVSS 5 · Published 2026-05-28

A vulnerability in the PDF export feature of local-deep-research allows authenticated users to inject malicious code into generated documents. This can be used to force the server to make unauthorized requests to internal services or cloud metadata endpoints, potentially exposing sensitive credentials or internal network information. The issue affects any deployment where users can generate PDF reports from their research queries.

Technologies: local-deep-research (PyPI). Vendors: PyPI.

Quick answers

Is CVE-2026-43979 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-43979 being exploited in the wild.
How severe is CVE-2026-43979?
Medium severity, with a CVSS score of 5, published 28 May 2026.
Which products and versions are affected?
local-deep-research (PyPI) < 1.6.0, ECOSYSTEM:introduced=0,fixed=1.6.0.
Is there a fix for CVE-2026-43979?
Yes. local-deep-research (PyPI): upgrade to 1.6.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-43979 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-43979?
Check whether you run local-deep-research (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • local-deep-research (PyPI): upgrade to 1.6.0 or later
    pip install "local-deep-research>=1.6.0"

Technical details

The vulnerability exists in `PDFService._markdown_to_html()` within `pdf_service.py`, where user-controlled research titles and metadata are interpolated into HTML f-strings without escaping. An authenticated attacker can submit a research query containing HTML tags (e.g., `</title><img src="...">`) which are then rendered by the WeasyPrint engine during PDF export. This allows for SSRF, enabling the attacker to bypass existing `ssrf_validator.py` protections because WeasyPrint's internal resource fetching does not use the application's validator. Attackers can target cloud metadata services (169.254.169.254) or internal network resources. The issue is patched in version 1.6.0 by implementing `html.escape()` and a custom `url_fetcher` for WeasyPrint.

Affected products

  • LearningCircuit local-deep-research < 1.6.0

Identifiers

  • CVE-2026-43979
  • GHSA-fj2m-qvh9-jq4q
  • PYSEC-2026-2610

Timeline

  • 2026-03-29: patched: Initial HTML injection fix in v1.5.0
  • 2026-04-24: patched: Full SSRF mitigation in v1.6.0
  • 2026-05-11: disclosed

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.