CyberRota Analysis
AI-GeneratedOpenSSL is vulnerable due to a flaw in the ruby-jwt library, where the JWT.decode function can accept attacker-forged tokens when using the HS256, HS384, or HS512 algorithms, allowing for potential unauthorized access. This critical vulnerability, rated CVSS 9.1, arises from the lack of a precondition for empty keys in the HMAC algorithm, enabling attackers to generate valid digests with empty keys. Organizations using affected versions of ruby-jwt should prioritize upgrading to versions 2.10.3 or 3.2.0 to mitigate the risk of exploitation.
Public Exploit Signal
A public exploit, PoC, GitHub repository or Metasploit reference was detected for this CVE.
Note: these links are listed for security research and verification purposes only.
Original NVD 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.