High, CVSS 8.3PyPIAmendedPublished
Serena: Unauthenticated Flask dashboard on fixed port enables DNS rebinding → memory poisoning → RCE
CVE-2026-49471 · GHSA-37h2-6p4f-mp3q
- Affected
- PyPI serena-agent < 1.5.2
- Fixed in
- 1.5.2· Vendor fix available
- Issue
- Serena'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's persistent memory store — which the agent reads and acts on autonomously. Combined with executeshellcommand (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. Details Root cause 1 — Unauthenticated dashboard (src/serena/dashboard.py) The Flask server starts automatically (webdashboard: true by default) on a fixed, predictable port with no auth middleware: Flask does not validate the Host header by default (no SERVERNAME set), which is the prerequisite for DNS rebinding. Root cause 2 —…
Recommended action: Upgrade to 1.5.2 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.