<?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>Wed, 07 Oct 2026 21:05:31 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-264296</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-264296</link>
      <description>EUVD-2026-264296</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-264296</guid>
    </item>
    <item>
      <title>fkie_cve-2025-67743</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2025-67743</link>
      <description>&lt;p&gt;Local Deep Research is an AI-powered research assistant for deep, iterative research. In versions from 1.3.0 to before 1.3.9, the download service (download_service.py) makes HTTP requests using raw requests.get() without utilizing the application&amp;#39;s SSRF protection (safe_requests.py). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls. This issue has been patched in version 1.3.9.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Local Deep Research is an AI-powered research assistant for deep, iterative research. In versions from 1.3.0 to before 1.3.9, the download service (download_service.py) makes HTTP requests using raw requests.get() without utilizing the application&amp;#39;s SSRF protection (safe_requests.py). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls. This issue has been patched in version 1.3.9.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2025-67743</guid>
    </item>
    <item>
      <title>GHSA-9c54-gxh7-ppjc — Local Deep Research is Vulnerable to Server-Side Request Forgery (SSRF) in Download Service</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-9c54-gxh7-ppjc</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;The download service (`download_service.py`) makes HTTP requests using raw `requests.get()` without utilizing the application&amp;#39;s SSRF protection (`safe_requests.py`). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls.&lt;/p&gt;
&lt;p&gt;**CWE**: CWE-918 (Server-Side Request Forgery)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerable Code Location&lt;/p&gt;
&lt;p&gt;**File**: `src/local_deep_research/research_library/services/download_service.py`&lt;/p&gt;
&lt;p&gt;The application has proper SSRF protection implemented in `security/safe_requests.py` and `security/ssrf_validator.py`, which blocks:
- Loopback addresses (127.0.0.0/8)
- Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- AWS metadata endpoint (169.254.169.254)
- Link-local addresses&lt;/p&gt;
&lt;p&gt;However, `download_service.py` bypasses this protection by using raw `requests.get()` directly:&lt;/p&gt;
&lt;p&gt;```python
# Line 1038 - _download_generic method
response = requests.get(url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1075
response = requests.get(api_url, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1100
pdf_response = requests.get(pdf_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1144
response = requests.get(europe_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1187
api_response = requests.get(elink_url, params=params, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1207
summary_response = requests.get(esummary_url, ...)&lt;/p&gt;
&lt;p&gt;# L…&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;The download service (`download_service.py`) makes HTTP requests using raw `requests.get()` without utilizing the application&amp;#39;s SSRF protection (`safe_requests.py`). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls.&lt;/p&gt;
&lt;p&gt;**CWE**: CWE-918 (Server-Side Request Forgery)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerable Code Location&lt;/p&gt;
&lt;p&gt;**File**: `src/local_deep_research/research_library/services/download_service.py`&lt;/p&gt;
&lt;p&gt;The application has proper SSRF protection implemented in `security/safe_requests.py` and `security/ssrf_validator.py`, which blocks:
- Loopback addresses (127.0.0.0/8)
- Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- AWS metadata endpoint (169.254.169.254)
- Link-local addresses&lt;/p&gt;
&lt;p&gt;However, `download_service.py` bypasses this protection by using raw `requests.get()` directly:&lt;/p&gt;
&lt;p&gt;```python
# Line 1038 - _download_generic method
response = requests.get(url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1075
response = requests.get(api_url, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1100
pdf_response = requests.get(pdf_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1144
response = requests.get(europe_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1187
api_response = requests.get(elink_url, params=params, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1207
summary_response = requests.get(esummary_url, ...)&lt;/p&gt;
&lt;p&gt;# L…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-9c54-gxh7-ppjc</guid>
    </item>
    <item>
      <title>PYSEC-2026-1581 — Local Deep Research is Vulnerable to Server-Side Request Forgery (SSRF) in Download Service</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-1581</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;The download service (`download_service.py`) makes HTTP requests using raw `requests.get()` without utilizing the application&amp;#39;s SSRF protection (`safe_requests.py`). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls.&lt;/p&gt;
&lt;p&gt;**CWE**: CWE-918 (Server-Side Request Forgery)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerable Code Location&lt;/p&gt;
&lt;p&gt;**File**: `src/local_deep_research/research_library/services/download_service.py`&lt;/p&gt;
&lt;p&gt;The application has proper SSRF protection implemented in `security/safe_requests.py` and `security/ssrf_validator.py`, which blocks:
- Loopback addresses (127.0.0.0/8)
- Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- AWS metadata endpoint (169.254.169.254)
- Link-local addresses&lt;/p&gt;
&lt;p&gt;However, `download_service.py` bypasses this protection by using raw `requests.get()` directly:&lt;/p&gt;
&lt;p&gt;```python
# Line 1038 - _download_generic method
response = requests.get(url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1075
response = requests.get(api_url, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1100
pdf_response = requests.get(pdf_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1144
response = requests.get(europe_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1187
api_response = requests.get(elink_url, params=params, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1207
summary_response = requests.get(esummary_url, ...)&lt;/p&gt;
&lt;p&gt;# L…&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;The download service (`download_service.py`) makes HTTP requests using raw `requests.get()` without utilizing the application&amp;#39;s SSRF protection (`safe_requests.py`). This can allow attackers to access internal services and attempt to reach cloud provider metadata endpoints (AWS/GCP/Azure), as well as perform internal network reconnaissance, by submitting malicious URLs through the API, depending on the deployment and surrounding controls.&lt;/p&gt;
&lt;p&gt;**CWE**: CWE-918 (Server-Side Request Forgery)&lt;/p&gt;
&lt;p&gt;---&lt;/p&gt;
&lt;p&gt;## Details&lt;/p&gt;
&lt;p&gt;### Vulnerable Code Location&lt;/p&gt;
&lt;p&gt;**File**: `src/local_deep_research/research_library/services/download_service.py`&lt;/p&gt;
&lt;p&gt;The application has proper SSRF protection implemented in `security/safe_requests.py` and `security/ssrf_validator.py`, which blocks:
- Loopback addresses (127.0.0.0/8)
- Private IP ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16)
- AWS metadata endpoint (169.254.169.254)
- Link-local addresses&lt;/p&gt;
&lt;p&gt;However, `download_service.py` bypasses this protection by using raw `requests.get()` directly:&lt;/p&gt;
&lt;p&gt;```python
# Line 1038 - _download_generic method
response = requests.get(url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1075
response = requests.get(api_url, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1100
pdf_response = requests.get(pdf_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1144
response = requests.get(europe_url, headers=headers, timeout=30)&lt;/p&gt;
&lt;p&gt;# Line 1187
api_response = requests.get(elink_url, params=params, timeout=10)&lt;/p&gt;
&lt;p&gt;# Line 1207
summary_response = requests.get(esummary_url, ...)&lt;/p&gt;
&lt;p&gt;# L…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-1581</guid>
    </item>
  </channel>
</rss>
