Back to overview

CVE-2026-45363

CRITICAL
9.1
CVSS 3.1
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.

Metadata

CVE ID
CVE-2026-45363
State
PUBLISHED
Assigner
GitHub_M
Reserved
2026-05-12 00:51 UTC
Published
2026-07-14 21:32 UTC
Last updated
2026-07-15 13:26 UTC
Primary CWE
CWE-287
CWE-287: Improper Authentication
Vendor / Product
jwt / ruby-jwt
Sources
cve.org  ·  NVD

Severity & Metrics

9.1 CRITICAL CVSS 3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
SSVC — CISA Coordinator
Exploitation
none
Automatable
yes
Tech. Impact
total
Affected products (1)
VendorProductPlatformVersions
jwt ruby-jwt < 2.10.3, >= 3.0.0, < 3.2.0
Weakness (CWE)
CWESourceDescription
CWE-1391 cna CWE-1391: Use of Weak Credentials
CWE-287 cna CWE-287: Improper Authentication
CWE-326 cna CWE-326: Inadequate Encryption Strength
CVSS scores (1)
ScoreSeverityVersionSourceVector
9.1 CRITICAL 3.1 cna CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
References (5)
Back to overview