Home

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.

PUBLISHED Reserved 2026-05-07 | Published 2026-05-15 | Updated 2026-05-15 | Assigner GitHub_M




CRITICAL: 9.1CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Problem types

CWE-327: Use of a Broken or Risky Cryptographic Algorithm

CWE-347: Improper Verification of Cryptographic Signature

Product status

>= 3.0.0, < 3.3.3
affected

References

github.com/...libjwt/security/advisories/GHSA-q843-6q5f-w55g exploit

github.com/...libjwt/security/advisories/GHSA-q843-6q5f-w55g

cve.org (CVE-2026-44699)

nvd.nist.gov (CVE-2026-44699)

Download JSON