Vulnerability · Published May 26, 2026 · Assigned by GitHub_M
CVE-2026-43981Algernon: Race Condition in handle() shared LState
High 8.2
In plain English
A high-severity race condition in algernon from xyproto. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 8% of all known vulnerabilities).
Official description
Algernon is a small self-contained pure-Go web server. Prior to 1.17.6, in engine/luahandler.go, the sync.RWMutex protecting LoadCommonFunctions is released before L.Push() and L.PCall() execute. Since gopher-lua's LState is explicitly not goroutine-safe, concurrent requests race on the shared state causing Lua VM corruption. The Go race detector confirms this immediately under modest concurrency (ab -n 1000 -c 100). This vulnerability is fixed in 1.17.6.
Affected products (as reported)
Weakness: CWE-362 · Vector: CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
References
- https://github.com/xyproto/algernon/security/advisories/GHSA-rr2f-4wrm-h6rg x_refsource_CONFIRM
- https://github.com/xyproto/algernon/issues/172 x_refsource_MISC