Vulnerability · Published Jul 14, 2026 · Assigned by GitHub_M

CVE-2026-45363`jwt` (Ruby gem) - empty-key HMAC bypass

Critical 9.1

In plain English

A critical-severity improper authentication in ruby-jwt from jwt. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.4% (higher than 30% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.

Severity (CVSS 3.1)9.1Critical
Exploit odds (30 days)0.4%top 69.6% of all CVEs
Exploited in the wildNo reportsCISA SSVC: none
Attack toolingNoneno public tooling known

Official description

ruby-jwt is a Ruby implementation of the RFC 7519 OAuth JSON Web Token standard. Prior to 2.10.3 and 3.2.0, JWT.decode(token, '', true, algorithm: 'HS256') accepts an attacker-forged token because OpenSSL::HMAC.digest('SHA256', '', payload) returns a valid digest under an empty key and no empty-key precondition exists in the HMAC algorithm. The same path is reached when a keyfinder block or key_finder: argument returns an empty string, nil, or an array containing nil for an unknown key, affecting HS256, HS384, and HS512 verification through JWT.decode and JWT::EncodedToken#verify_signature!. This issue is fixed in versions 2.10.3 and 3.2.0.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12ruby-jwt2.5.0-1+deb12u1DEBIAN-CVE-2026-45363
Debian:13ruby-jwt2.7.1-1+deb13u1DEBIAN-CVE-2026-45363
Debian:14ruby-jwt3.2.0-1DEBIAN-CVE-2026-45363
RubyGemsjwt3.2.0GHSA-c32j-vqhx-rx3x
RubyGemsjwt2.10.3GHSA-c32j-vqhx-rx3x
Ubuntu:22.04:LTSruby-jwtno fix listedUBUNTU-CVE-2026-45363
Ubuntu:24.04:LTSruby-jwtno fix listedUBUNTU-CVE-2026-45363
Ubuntu:26.04:LTSruby-jwtno fix listedUBUNTU-CVE-2026-45363
Ubuntu:26.10ruby-jwtno fix listedUBUNTU-CVE-2026-45363

Affected products (as reported)

VendorProductVersions
jwt ruby-jwt < 2.10.3>= 3.0.0, < 3.2.0

Weakness: CWE-287, CWE-326, CWE-1391 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

References