CVE-2026-44699 LibJWT: Algorithm confusion allows JWT forgery with RSA JWK as empty-key HMAC

Critical 9.1 Published Updated

Attackers can forge valid JWTs by exploiting algorithm confusion in libjwt, bypassing authentication in applications using RSA JWKs without alg parameters.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Over the internet
Victim action needed
Not needed
Fix
Available

What is CVE-2026-44699?

CVE-2026-44699 is a critical authentication bypass vulnerability in benmcollins libjwt, published on 15 May 2026. An attacker can exploit it over the internet without logging in, with no action from the victim.

Official description

LibJWT is a C JSON Web Token Library. From 3.0.0 to 3.3.2, libjwt accepts an RSA JWK that does not contain an alg parameter as the verification key for an HS256/HS384/HS512 token. In the OpenSSL backend, this causes HMAC verification to run with a zero-length key, so an attacker can forge a valid JWT without knowing any secret or RSA private key. This is an algorithm-confusion authentication bypass. It affects applications that load RSA keys from JWKS where alg is omitted, which is valid JWK syntax and common in real deployments, and then choose the verification algorithm from the JWT header, for example in a kid lookup callback. This vulnerability is fixed in 3.3.3.

Weakness: CWE-347, CWE-327

Which versions are affected by CVE-2026-44699?

How do I fix CVE-2026-44699?

Upgrade to a fixed version.

Upgrade, and rotate credentials and sessions that may have been exposed. More about Authentication bypass.

Is CVE-2026-44699 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-44699 exists.

Sources

Also known as DEBIAN-CVE-2026-44699, GHSA-q843-6q5f-w55g, UBUNTU-CVE-2026-44699.

Is CVE-2026-44699 in your software?

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

Check your SBOMs for free