CVE-2026-43981 Algernon: Race Condition in handle() shared LState
Concurrent requests cause Lua VM corruption in Algernon web server, potentially leading to crashes or code execution.
- Exploited in the wild
- Not known
- Login needed
- Not needed
- Attackable
- Over the internet
- Victim action needed
- Not needed
- Fix
- None listed
What is CVE-2026-43981?
CVE-2026-43981 is a high-severity vulnerability in xyproto algernon, published on 26 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.
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.
Weakness: CWE-362
Which versions are affected by CVE-2026-43981?
How do I fix CVE-2026-43981?
No fix has been published for CVE-2026-43981 yet. Limit exposure of the affected software until one is available.
Is CVE-2026-43981 being exploited?
There is no known exploitation of CVE-2026-43981 in the wild and no public exploit code.
Sources
Also known as GHSA-rr2f-4wrm-h6rg.