json-jwt 1.9.0

3 security vulnerabilities found in version 1.9.0

json-jwt improper input validation due to lack of element count when splitting string

high severity CVE-2019-18848
high severity CVE-2019-18848
Patched versions: >= 1.11.0

The json-jwt gem before 1.11.0 for Ruby lacks an element count during the splitting of a JWE string.

json-jwt allows bypass of identity checks via a sign/encryption confusion attack

medium severity CVE-2023-51774
medium severity CVE-2023-51774
Patched versions: ~> 1.15.3, >= 1.15.3.1, >= 1.16.6

The json-jwt (aka JSON::JWT) gem versions 1.16.5 and below sometimes allows bypass of identity checks via a sign/encryption confusion attack. For example, JWE can sometimes be used to bypass JSON::JWT.decode.

Auth tag forgery vulnerability with AES-GCM encrypted JWT

medium severity CVE-2018-1000539
medium severity CVE-2018-1000539
Patched versions: >= 1.9.4
Unaffected versions: < 0.5.1

Ruby's OpenSSL bindings do not check the length of the supplied authentication tag when decrypting an authenticated encryption mode such as AES-GCM, leaving this up to the authors of a gem/app to implement for properly validating the message.

json-jwt was not checking for the authentication tag length, meaning that with a one byte tag the JWT would be considered not tampered with. This means that with an average of 128 (max 256) attempts an attacker can forge a valid signature.

No officially reported memory leakage issues detected.


This gem version does not have any officially reported memory leaked issues.

No license issues detected.


This gem version has a license in the gemspec.

This gem version is available.


This gem version has not been yanked and is still available for usage.