<?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 01:58:55 +0000</lastBuildDate>
    <item>
      <title>EUVD-2026-335305</title>
      <link>https://cve.radiocsirt.org/vuln/euvd-2026-335305</link>
      <description>EUVD-2026-335305</description>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/euvd-2026-335305</guid>
    </item>
    <item>
      <title>fkie_cve-2026-49471</title>
      <link>https://cve.radiocsirt.org/vuln/fkie_cve-2026-49471</link>
      <description>&lt;p&gt;Serena is a powerful MCP toolkit for coding that provides semantic retrieval and editing capabilities. Prior to v1.5.2, Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port, with no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store, which the agent reads and acts on autonomously. Combined with execute_shell_command using shell=True, this creates a remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running. This issue is fixed in version v1.5.2.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;Serena is a powerful MCP toolkit for coding that provides semantic retrieval and editing capabilities. Prior to v1.5.2, Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port, with no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store, which the agent reads and acts on autonomously. Combined with execute_shell_command using shell=True, this creates a remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running. This issue is fixed in version v1.5.2.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/fkie_cve-2026-49471</guid>
    </item>
    <item>
      <title>GHSA-37h2-6p4f-mp3q — Serena: Unauthenticated Flask dashboard on fixed port enables DNS rebinding → memory poisoning → RCE</title>
      <link>https://cve.radiocsirt.org/vuln/ghsa-37h2-6p4f-mp3q</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: serena-agent&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port (TCP 24282, hardcoded as `0x5EDA` in `constants.py`). The server has no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store — which the agent reads and acts on autonomously. Combined with `execute_shell_command` (enabled by default in all contexts via `shell=True`), this creates a full remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause 1 — Unauthenticated dashboard (`src/serena/dashboard.py`)**&lt;/p&gt;
&lt;p&gt;The Flask server starts automatically (`web_dashboard: true` by default) on a fixed, predictable port with no auth middleware:&lt;/p&gt;
&lt;p&gt;```python
# src/serena/constants.py
DASHBOARD_API_BASE_PORT = 0x5EDA  # = 24282, always the same
```&lt;/p&gt;
&lt;p&gt;```python
# src/serena/dashboard.py — no auth, no CSRF, no Host header validation on any route
@self._app.route(&amp;#34;/save_memory&amp;#34;, methods=[&amp;#34;POST&amp;#34;])
def save_memory():
    request_data = request.get_json()
    self._save_memory(...)  # writes to disk, no credentials checked&lt;/p&gt;
&lt;p&gt;@self._app.route(&amp;#34;/shutdown&amp;#34;, methods=[&amp;#34;PUT&amp;#34;])
def shutdown():
    self._agent.shutdown()  # kills the agent, no credentials checked
```&lt;/p&gt;
&lt;p&gt;Flask does not validate the `Host` header by default (no `SERVER_NAME` set), which is the prere…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: serena-agent&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port (TCP 24282, hardcoded as `0x5EDA` in `constants.py`). The server has no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store — which the agent reads and acts on autonomously. Combined with `execute_shell_command` (enabled by default in all contexts via `shell=True`), this creates a full remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause 1 — Unauthenticated dashboard (`src/serena/dashboard.py`)**&lt;/p&gt;
&lt;p&gt;The Flask server starts automatically (`web_dashboard: true` by default) on a fixed, predictable port with no auth middleware:&lt;/p&gt;
&lt;p&gt;```python
# src/serena/constants.py
DASHBOARD_API_BASE_PORT = 0x5EDA  # = 24282, always the same
```&lt;/p&gt;
&lt;p&gt;```python
# src/serena/dashboard.py — no auth, no CSRF, no Host header validation on any route
@self._app.route(&amp;#34;/save_memory&amp;#34;, methods=[&amp;#34;POST&amp;#34;])
def save_memory():
    request_data = request.get_json()
    self._save_memory(...)  # writes to disk, no credentials checked&lt;/p&gt;
&lt;p&gt;@self._app.route(&amp;#34;/shutdown&amp;#34;, methods=[&amp;#34;PUT&amp;#34;])
def shutdown():
    self._agent.shutdown()  # kills the agent, no credentials checked
```&lt;/p&gt;
&lt;p&gt;Flask does not validate the `Host` header by default (no `SERVER_NAME` set), which is the prere…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/ghsa-37h2-6p4f-mp3q</guid>
    </item>
    <item>
      <title>PYSEC-2026-3061 — Serena: Unauthenticated Flask dashboard on fixed port enables DNS rebinding → memory poisoning → RCE</title>
      <link>https://cve.radiocsirt.org/vuln/pysec-2026-3061</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: serena-agent&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port (TCP 24282, hardcoded as `0x5EDA` in `constants.py`). The server has no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store — which the agent reads and acts on autonomously. Combined with `execute_shell_command` (enabled by default in all contexts via `shell=True`), this creates a full remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause 1 — Unauthenticated dashboard (`src/serena/dashboard.py`)**&lt;/p&gt;
&lt;p&gt;The Flask server starts automatically (`web_dashboard: true` by default) on a fixed, predictable port with no auth middleware:&lt;/p&gt;
&lt;p&gt;```python
# src/serena/constants.py
DASHBOARD_API_BASE_PORT = 0x5EDA  # = 24282, always the same
```&lt;/p&gt;
&lt;p&gt;```python
# src/serena/dashboard.py — no auth, no CSRF, no Host header validation on any route
@self._app.route(&amp;#34;/save_memory&amp;#34;, methods=[&amp;#34;POST&amp;#34;])
def save_memory():
    request_data = request.get_json()
    self._save_memory(...)  # writes to disk, no credentials checked&lt;/p&gt;
&lt;p&gt;@self._app.route(&amp;#34;/shutdown&amp;#34;, methods=[&amp;#34;PUT&amp;#34;])
def shutdown():
    self._agent.shutdown()  # kills the agent, no credentials checked
```&lt;/p&gt;
&lt;p&gt;Flask does not validate the `Host` header by default (no `SERVER_NAME` set), which is the prere…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: serena-agent&lt;/p&gt;
&lt;p&gt;### Summary&lt;/p&gt;
&lt;p&gt;Serena&amp;#39;s built-in web dashboard exposes an unauthenticated Flask API on a fixed, predictable port (TCP 24282, hardcoded as `0x5EDA` in `constants.py`). The server has no authentication, no CSRF protection, and no Host header validation. A DNS rebinding attack allows a malicious webpage to reach this API from any browser and write arbitrary content to the agent&amp;#39;s persistent memory store — which the agent reads and acts on autonomously. Combined with `execute_shell_command` (enabled by default in all contexts via `shell=True`), this creates a full remote code execution chain requiring only that the victim visit a malicious webpage while Serena is running.&lt;/p&gt;
&lt;p&gt;### Details&lt;/p&gt;
&lt;p&gt;**Root cause 1 — Unauthenticated dashboard (`src/serena/dashboard.py`)**&lt;/p&gt;
&lt;p&gt;The Flask server starts automatically (`web_dashboard: true` by default) on a fixed, predictable port with no auth middleware:&lt;/p&gt;
&lt;p&gt;```python
# src/serena/constants.py
DASHBOARD_API_BASE_PORT = 0x5EDA  # = 24282, always the same
```&lt;/p&gt;
&lt;p&gt;```python
# src/serena/dashboard.py — no auth, no CSRF, no Host header validation on any route
@self._app.route(&amp;#34;/save_memory&amp;#34;, methods=[&amp;#34;POST&amp;#34;])
def save_memory():
    request_data = request.get_json()
    self._save_memory(...)  # writes to disk, no credentials checked&lt;/p&gt;
&lt;p&gt;@self._app.route(&amp;#34;/shutdown&amp;#34;, methods=[&amp;#34;PUT&amp;#34;])
def shutdown():
    self._agent.shutdown()  # kills the agent, no credentials checked
```&lt;/p&gt;
&lt;p&gt;Flask does not validate the `Host` header by default (no `SERVER_NAME` set), which is the prere…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://cve.radiocsirt.org/vuln/pysec-2026-3061</guid>
    </item>
  </channel>
</rss>
