LibJWT: Algorithm confusion allows JWT forgery with RSA JWK as empty-key HMAC
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Information disclosure, Security bypass
- Confidentiality · integrity · availability
- High · High · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA. Impact type from CWE-327 and CWE-347.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- Poc
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| benmcollins | libjwt | 3.0.0 to before 3.3.3 | 3.3.3 | Patch available | CNA |
- libjwt Vendorbenmcollins Affected 3.0.0 to before 3.3.3 Fixed in 3.3.3 Patch available CNA
Remediation
- Fix · CNA libjwt (benmcollins) Fixed in 3.3.3
Vendor assessments
Timeline
- 2026-10-02 Threatist record created from CVE-2026-44699
Sources
- CVE-2026-44699 · CVE Program
- CVE-2026-44699 · NVD
- FIRST EPSS
- CVE-2026-44699 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences