<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://cve.radiocsirt.org</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 08 Oct 2026 03:29:46 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-322632</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-322632</link>
      <description>EUVD-2026-322632</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-322632</guid>
    </item>
    <item>
      <title>fkie_cve-2026-43979</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-43979</link>
      <description>&lt;p&gt;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&amp;#39;s existing SSRF defenses in ssrf_validator.py. This vulnerability is fixed in 1.6.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;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&amp;#39;s existing SSRF defenses in ssrf_validator.py. This vulnerability is fixed in 1.6.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-43979</guid>
    </item>
    <item>
      <title>GHSA-fj2m-qvh9-jq4q — local-deep-research is Vulnerable to HTML Injection via Unescaped User Input in PDF Export (`pdf_service.py:_markdown_t…</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-fj2m-qvh9-jq4q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: local-deep-research&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`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&amp;#39;s existing SSRF defenses in `ssrf_validator.py`.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Vulnerable code:** `src/local_deep_research/web/services/pdf_service.py`, lines 171–176&lt;/p&gt;
&lt;p&gt;```python
# pdf_service.py:171-176
if title:
    html_parts.append(f&amp;#34;&amp;lt;title&amp;gt;{title}&amp;lt;/title&amp;gt;&amp;#34;)   # ← title is not escaped&lt;/p&gt;
&lt;p&gt;if metadata:
    for key, value in metadata.items():
        html_parts.append(f&amp;#39;&amp;lt;meta name=&amp;#34;{key}&amp;#34; content=&amp;#34;{value}&amp;#34;&amp;gt;&amp;#39;)  # ← key/value are not escaped
```&lt;/p&gt;
&lt;p&gt;**Data flow trace:**&lt;/p&gt;
&lt;p&gt;```
User input: research.query
        │
        ▼
research_routes.py:1321
  pdf_title = research.title or research.query
        │
        ▼
research_routes.py:1325-1326
  export_report_to_memory(report_content, format, title=pdf_title)
        │
        ▼
pdf_service.py:107
  PDFService.markdown_to_pdf(markdown_content, title=pdf_title)
        │
        ▼
pdf_service.py:137
  _markdown_to_html(markdown_content, title, metadata)
        │
        ▼
pdf_service.py:172
  f&amp;#34;&amp;lt;tit…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: local-deep-research&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`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&amp;#39;s existing SSRF defenses in `ssrf_validator.py`.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Vulnerable code:** `src/local_deep_research/web/services/pdf_service.py`, lines 171–176&lt;/p&gt;
&lt;p&gt;```python
# pdf_service.py:171-176
if title:
    html_parts.append(f&amp;#34;&amp;lt;title&amp;gt;{title}&amp;lt;/title&amp;gt;&amp;#34;)   # ← title is not escaped&lt;/p&gt;
&lt;p&gt;if metadata:
    for key, value in metadata.items():
        html_parts.append(f&amp;#39;&amp;lt;meta name=&amp;#34;{key}&amp;#34; content=&amp;#34;{value}&amp;#34;&amp;gt;&amp;#39;)  # ← key/value are not escaped
```&lt;/p&gt;
&lt;p&gt;**Data flow trace:**&lt;/p&gt;
&lt;p&gt;```
User input: research.query
        │
        ▼
research_routes.py:1321
  pdf_title = research.title or research.query
        │
        ▼
research_routes.py:1325-1326
  export_report_to_memory(report_content, format, title=pdf_title)
        │
        ▼
pdf_service.py:107
  PDFService.markdown_to_pdf(markdown_content, title=pdf_title)
        │
        ▼
pdf_service.py:137
  _markdown_to_html(markdown_content, title, metadata)
        │
        ▼
pdf_service.py:172
  f&amp;#34;&amp;lt;tit…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-fj2m-qvh9-jq4q</guid>
    </item>
    <item>
      <title>PYSEC-2026-2610 — local-deep-research is Vulnerable to HTML Injection via Unescaped User Input in PDF Export (`pdf_service.py:_markdown_t…</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-2610</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: local-deep-research&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`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&amp;#39;s existing SSRF defenses in `ssrf_validator.py`.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Vulnerable code:** `src/local_deep_research/web/services/pdf_service.py`, lines 171–176&lt;/p&gt;
&lt;p&gt;```python
# pdf_service.py:171-176
if title:
    html_parts.append(f&amp;#34;&amp;lt;title&amp;gt;{title}&amp;lt;/title&amp;gt;&amp;#34;)   # ← title is not escaped&lt;/p&gt;
&lt;p&gt;if metadata:
    for key, value in metadata.items():
        html_parts.append(f&amp;#39;&amp;lt;meta name=&amp;#34;{key}&amp;#34; content=&amp;#34;{value}&amp;#34;&amp;gt;&amp;#39;)  # ← key/value are not escaped
```&lt;/p&gt;
&lt;p&gt;**Data flow trace:**&lt;/p&gt;
&lt;p&gt;```
User input: research.query
        │
        ▼
research_routes.py:1321
  pdf_title = research.title or research.query
        │
        ▼
research_routes.py:1325-1326
  export_report_to_memory(report_content, format, title=pdf_title)
        │
        ▼
pdf_service.py:107
  PDFService.markdown_to_pdf(markdown_content, title=pdf_title)
        │
        ▼
pdf_service.py:137
  _markdown_to_html(markdown_content, title, metadata)
        │
        ▼
pdf_service.py:172
  f&amp;#34;&amp;lt;tit…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: local-deep-research&lt;/p&gt;
&lt;p&gt;## Summary&lt;/p&gt;
&lt;p&gt;`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&amp;#39;s existing SSRF defenses in `ssrf_validator.py`.&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;**Vulnerable code:** `src/local_deep_research/web/services/pdf_service.py`, lines 171–176&lt;/p&gt;
&lt;p&gt;```python
# pdf_service.py:171-176
if title:
    html_parts.append(f&amp;#34;&amp;lt;title&amp;gt;{title}&amp;lt;/title&amp;gt;&amp;#34;)   # ← title is not escaped&lt;/p&gt;
&lt;p&gt;if metadata:
    for key, value in metadata.items():
        html_parts.append(f&amp;#39;&amp;lt;meta name=&amp;#34;{key}&amp;#34; content=&amp;#34;{value}&amp;#34;&amp;gt;&amp;#39;)  # ← key/value are not escaped
```&lt;/p&gt;
&lt;p&gt;**Data flow trace:**&lt;/p&gt;
&lt;p&gt;```
User input: research.query
        │
        ▼
research_routes.py:1321
  pdf_title = research.title or research.query
        │
        ▼
research_routes.py:1325-1326
  export_report_to_memory(report_content, format, title=pdf_title)
        │
        ▼
pdf_service.py:107
  PDFService.markdown_to_pdf(markdown_content, title=pdf_title)
        │
        ▼
pdf_service.py:137
  _markdown_to_html(markdown_content, title, metadata)
        │
        ▼
pdf_service.py:172
  f&amp;#34;&amp;lt;tit…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-2610</guid>
    </item>
  </channel>
</rss>
