Executive brief
Algernon is a standalone web server used for rapid development and hosting. A security flaw in its Server-Sent Events (SSE) component allows malicious websites to spy on a developer's local environment. If a developer visits a malicious site while the server is running, that site can silently monitor the names of files being edited or changed on the developer's computer, potentially exposing sensitive project structures or filenames.
Technical details
The SSE (Server-Sent Events) server in Algernon prior to version 1.17.7 hardcodes the 'Access-Control-Allow-Origin' response header to a wildcard (*). Because the browser's EventSource API does not trigger CORS preflight requests and does not send cookies, this permissive policy allows any cross-origin site to initiate a connection to the SSE port (typically 5553). An attacker can lure a developer to a malicious page that uses JavaScript to open an EventSource connection to the local Algernon instance and exfiltrate the stream of file-change events. This vulnerability is caused by the literal string "*" being passed to the underlying recwatch implementation in engine/config.go. The issue is fixed in version 1.17.7 by implementing proper origin validation.
Affected products
- xyproto Algernon < 1.17.7
Timeline
- 2026-05-14: advisory: GitHub Security Advisory published by vendor
- 2026-05-26: disclosed: CVE published to NVD dataset
- 2026-05-26: patched: Vulnerability fixed in version 1.17.7