FR
live
Critical CVSS 9.1

CVE-2026-45363

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.

What this means

Exposure
Exploitable remotely over the network, without authentication and with no action from the victim.
Impact
An attacker can read sensitive data and modify or destroy data.
Weakness
The authentication mechanism can be bypassed, letting an attacker pose as a legitimate user.
Likelihood
Its EPSS score stays low: nothing points to imminent exploitation, which is no reason to leave it unpatched.

What to doPatch without waiting for the next scheduled cycle. Start with the instances exposed to the internet.

Read automatically from the CVSS vector, the weakness type (CWE) and the EPSS score. The technical description above remains the one published by NIST.

Published
14 July 2026
CVSS
9.1 (v3.1) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
EPSS
0.24% probability of exploitation within 30 days · above 16% of all CVEs
Weakness
CWE-287CWE-326CWE-1391
Sources
nvd
References

Type at least two characters.

navigate open esc dismiss