CVE-2026-43981 Algernon: Race Condition in handle() shared LState

High 8.2 Published Updated

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.

Is CVE-2026-43981 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free