Summary
CVE-2026-52792 is a high-severity (CVSS 8.7) file-type validation bypass in Algernon, a pure-Go web server, that affects deployments running on Windows/NTFS. By appending NTFS-equivalent filename suffixes to a public server-side script path, an unauthenticated attacker can force Algernon to return the script’s raw source code instead of executing it. This can expose embedded secrets such as database credentials, API keys, and session cookie secrets.
Technical details
- Root cause: Algernon selects its file handler based on
filepath.Ext(), which does not recognize NTFS-equivalent filename forms such asx.lua::$DATA,x.lua., orx.lua(trailing space) as the underlying.luafile. - Trigger conditions: the server must run on Windows (NTFS), expose server-side scripts (
.lua,.tl,.po2,.amber,.frm) on a public path, and have no authentication backend configured. - Attack vector: network, unauthenticated — the attacker simply requests the script path with an appended suffix (e.g.,
index.lua::$DATA,index.lua.,index.lua%20); NTFS resolves this to the real file while Algernon’s extension check fails to match it, so the file is served as raw content rather than executed. - Impact: disclosure of server-side script source code, which may contain database credentials, API keys, and the
SetCookieSecretvalue; leaked cookie secrets can further enable session forgery and account takeover. Linux and macOS hosts are not affected.
Affected software
- xyproto/Algernon versions ≤ 1.17.8 running on Windows
- Fixed in version 1.17.9
Severity
- CVSS v4.0 Base Score: 8.7 (High)
- Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate: Upgrade Algernon to version 1.17.9 or later.
- If patching is not immediately possible: avoid running Algernon server-side scripts on Windows/NTFS, restrict public access to script paths, ensure secrets are not embedded directly in script source, and reject request paths containing colons, trailing periods, or trailing spaces before handler dispatch.
How IONIX identifies potentially affected assets
IONIX matches the following signal against data already collected when it crawled the asset; identifying the technology sends no request beyond that crawl.
- Named response header (
Server):Algernon, with an optional version number following it (e.g.Algernon 1.17.8)

