CVE-2026-45363
`jwt` (Ruby gem) - empty-key HMAC bypass
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
9.1
`jwt` (Ruby gem) - empty-key HMAC bypass
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.
- Record
CVE-2026-45363- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287, CWE-326, CWE-1391
- Updated
- 2026-11-02
EUVDEUVD-2026-44516
9.1
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.
- Record
EUVD-2026-44516- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-c32j-vqhx-rx3x
7.4
ruby-jwt: Empty-key HMAC bypass; cross-language sibling of CVE-2026-44351
JWT.decode(token, '', true, algorithm: 'HS256') accepts an attacker-forged token.
OpenSSL::HMAC.digest('SHA256', '', payload) returns a valid digest under an empty key, and no raise InvalidKeyError if key.empty? precondition exists in the HMAC algorithm.
JWT.decode(token, "", true, algorithm: 'HS256')
-> JWA::Hmac.verify(verification_key: "", ...)
-> OpenSSL::HMAC.digest('SHA256', "", signing_input) == signature
The same path is reached when a keyfinder block or key_finder: argument returns "", nil, or an array containing nil for an unknown key. JWT::Decode#find_key only rejects literal nil and empty arrays, and JWT::JWA::Hmac silently coerces nil to "" (signing_key ||= '') before signing.
JWT.decode(token, nil, true, algorithms: ['HS256']) { |_h| "" }
-> find_key returns "" # "" && !Array("").empty? == true
-> JWA::Hmac.verify(verification_key: "", ...)
-> verifies
Common application patterns that produce the unsafe value: redis.get("kid:#{kid}").to_s, ORM string columns with default: '', ENV['SECRET'] || '', Hash.new('') lookups, [primary, fallback] where fallback may be nil. Applications passing a non-empty static key:, or whose keyfinder returns nil / raises on miss, are not affected.
The existing enforce_hmac_key_length option would block this but defaults to false. On OpenSSL ≥ 3.5 the empty-key HMAC.digest call no longer raises, so the OpenSSL-3.0 rescue in JWA::Hmac#sign does not fire.
Affects HS256/HS384/HS512 via both JWT.decode (positional key and block keyfinder) and
JWT::EncodedToken#verify_signature!(key_finder:)
- Record
GHSA-c32j-vqhx-rx3x- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287, CWE-326, CWE-1391
- Updated
- 2026-11-02
NVD
9.1
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.
- Record
CVE-2026-45363- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-287, CWE-326, CWE-1391
- Updated
- 2026-11-02
OSV
9.1
`jwt` (Ruby gem) - empty-key HMAC bypass
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.
- Record
CVE-2026-45363- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-1391, CWE-287, CWE-326
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-45363
9.1
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.
- Record
DEBIAN-CVE-2026-45363- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
Show 6 moreShow less
OSVGHSA-c32j-vqhx-rx3x
7.4
ruby-jwt: Empty-key HMAC bypass; cross-language sibling of CVE-2026-44351
JWT.decode(token, '', true, algorithm: 'HS256') accepts an attacker-forged token.
OpenSSL::HMAC.digest('SHA256', '', payload) returns a valid digest under an empty key, and no raise InvalidKeyError if key.empty? precondition exists in the HMAC algorithm.
JWT.decode(token, "", true, algorithm: 'HS256')
-> JWA::Hmac.verify(verification_key: "", ...)
-> OpenSSL::HMAC.digest('SHA256', "", signing_input) == signature
The same path is reached when a keyfinder block or key_finder: argument returns "", nil, or an array containing nil for an unknown key. JWT::Decode#find_key only rejects literal nil and empty arrays, and JWT::JWA::Hmac silently coerces nil to "" (signing_key ||= '') before signing.
JWT.decode(token, nil, true, algorithms: ['HS256']) { |_h| "" }
-> find_key returns "" # "" && !Array("").empty? == true
-> JWA::Hmac.verify(verification_key: "", ...)
-> verifies
Common application patterns that produce the unsafe value: redis.get("kid:#{kid}").to_s, ORM string columns with default: '', ENV['SECRET'] || '', Hash.new('') lookups, [primary, fallback] where fallback may be nil. Applications passing a non-empty static key:, or whose keyfinder returns nil / raises on miss, are not affected.
The existing enforce_hmac_key_length option would block this but defaults to false. On OpenSSL ≥ 3.5 the empty-key HMAC.digest call no longer raises, so the OpenSSL-3.0 rescue in JWA::Hmac#sign does not fire.
Affects HS256/HS384/HS512 via both JWT.decode (positional key and block keyfinder) and
JWT::EncodedToken#verify_signature!(key_finder:)
- Record
GHSA-c32j-vqhx-rx3x- CVSS 3.1
- 7.4 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N - Weakness
- CWE-1391, CWE-287, CWE-326
- Updated
- 2026-11-02
OSVRHSA-2026:63327
8.1
Red Hat Security Advisory: Satellite 6.16.13 Async Update
- Record
RHSA-2026:63327- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:63385
8.8
Red Hat Security Advisory: Satellite 6.19.4 Async Update
- Record
RHSA-2026:63385- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:63386
8.1
Red Hat Security Advisory: Satellite 6.18.9 Async Update
- Record
RHSA-2026:63386- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:63387
8.1
Red Hat Security Advisory: Satellite 6.17.11 Async Update
- Record
RHSA-2026:63387- CVSS 3.1
- 8.1 High
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-45363
9.1
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.
- Record
UBUNTU-CVE-2026-45363- CVSS 3.1
- 9.1 Critical
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
jwtRubyGems |
3.0.0 up to 3.2.0 | 3.2.0 |
jwtRubyGems |
before 2.10.3 | 2.10.3 |
ruby-jwtDebian:12 |
before 2.5.0-1+deb12u1, plus listed versions 2.5.0-1 |
2.5.0-1+deb12u1 |
ruby-jwtDebian:13 |
before 2.7.1-1+deb13u1, plus listed versions 2.7.1-1 |
2.7.1-1+deb13u1 |
ruby-jwtDebian:14 |
before 3.2.0-1, plus listed versions 2.7.1-13.1.2-1 |
3.2.0-1 |
jwtRubyGems |
3.0.0 up to 3.2.0, plus listed versions 3.1.03.1.13.1.2 |
3.2.0 |
jwtRubyGems |
before 2.10.3, plus listed versions 0.1.10.1.100.1.110.1.130.1.2 Show 44 moreShow less0.1.30.1.40.1.50.1.60.1.70.1.81.0.01.2.01.2.11.3.01.4.01.4.11.5.01.5.11.5.21.5.41.5.51.5.62.0.02.0.0.beta12.1.02.10.02.10.12.10.22.2.02.2.0.pre.beta.02.2.12.2.22.2.32.3.02.4.02.4.0.beta12.4.12.5.02.6.02.7.02.7.12.8.02.8.12.8.22.9.02.9.12.9.22.9.3 |
2.10.3 |
openvox-serverRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:8.15.2-1.el8sat | 0:8.15.2-1.el8sat |
openvox-serverRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:8.15.2-1.el8sat | 0:8.15.2-1.el8sat |
openvox-serverRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
Show 86 moreShow less
| Package | Affected | Fixed |
|---|---|---|
openvox-serverRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
python-aiohttpRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python-aiohttp-debugsourceRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python3.11-aiohttpRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python3.11-aiohttp-debuginfoRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python-aiohttpRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python-aiohttp-debugsourceRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python3.11-aiohttpRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python3.11-aiohttp-debuginfoRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el8pc | 0:3.14.3-1.el8pc |
python-aiohttpRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttp-debugsourceRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttpRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttp-debuginfoRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttpRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttp-debugsourceRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttpRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttp-debuginfoRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
rubygem-jwtRed Hat:satellite_capsule:6.16::el8 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el8sat | 0:2.10.3-1.el8sat |
rubygem-jwtRed Hat:satellite_utils:6.16::el8 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el8sat | 0:2.10.3-1.el8sat |
rubygem-jwtRed Hat:satellite:6.16::el8 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el8sat | 0:2.10.3-1.el8sat |
rubygem-jwtRed Hat:satellite_capsule:6.16::el9 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite_utils:6.16::el9 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite:6.16::el9 From an advisory covering 7 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
openvox-serverRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
openvox-serverRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
ansible-coreRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite_maintenance:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
python3.12-aiohttpRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttpRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-gitpythonRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.1.59-1.el9pc | 0:3.1.59-1.el9pc |
python3.12-gitpythonRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.1.59-1.el9pc | 0:3.1.59-1.el9pc |
rubygem-jwtRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite_utils:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
openvox-serverRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
pulpcore-obsolete-packagesRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:1.3.1-5.el9pc | 0:1.3.1-5.el9pc |
python3.12-pulpcoreRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.73.30-3.el9pc | 0:3.73.30-3.el9pc |
openvox-serverRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
pulpcore-obsolete-packagesRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:1.3.1-5.el9pc | 0:1.3.1-5.el9pc |
python3.12-pulpcoreRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.73.30-3.el9pc | 0:3.73.30-3.el9pc |
ansible-coreRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite_maintenance:6.18::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
python3.12-aiohttpRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttpRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
rubygem-jwtRed Hat:satellite_capsule:6.18::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite_utils:6.18::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite:6.18::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
ansible-coreRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
openvox-serverRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
ansible-coreRed Hat:satellite_maintenance:6.17::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
openvox-serverRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
python-aiohttpRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttp-debugsourceRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttpRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttp-debuginfoRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttpRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python-aiohttp-debugsourceRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttpRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.11-aiohttp-debuginfoRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
rubygem-jwtRed Hat:satellite_capsule:6.17::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite_utils:6.17::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite:6.17::el9 From an advisory covering 9 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
ruby-jwtUbuntu:16.04:LTS |
All versions, plus listed versions 1.0.0-3 |
None known |
ruby-jwtUbuntu:18.04:LTS |
All versions, plus listed versions 1.5.6-1 |
None known |
ruby-jwtUbuntu:20.04:LTS |
All versions, plus listed versions 1.5.6-12.1.0-2 |
None known |
ruby-jwtUbuntu:22.04:LTS |
All versions, plus listed versions 2.2.2-1 |
None known |
ruby-jwtUbuntu:24.04:LTS |
All versions, plus listed versions 2.7.0-22.7.1-1 |
None known |
ruby-jwtUbuntu:26.10 |
All versions, plus listed versions 2.7.1-13.2.0-1 |
None known |
ruby-jwtUbuntu:26.04:LTS |
All versions, plus listed versions 2.7.1-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-45363 is a critical vulnerability (CVSS 9.1) in Jwt Ruby-jwt, published May 18, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.36%, the 30th percentile. Fixed in jwt 3.2.0.
References
github.com/jwt/ruby-jwt/security/advisories/GHSA-c32j-vqhx-rx3x
github.com/jwt/ruby-jwt/commit/9820020869ad147b941e49d96ab8beba35532964
github.com/jwt/ruby-jwt/commit/db560b769a07bd9724e77ff505011ac01872106f
github.com/jwt/ruby-jwt/releases/tag/v2.10.3
github.com/jwt/ruby-jwt/releases/tag/v3.2.0
lists.debian.org/debian-lts-announce/2026/09/msg00022.html
Show 173 moreShow less
github.com/jwt/ruby-jwt/issues/724
github.com/rubysec/ruby-advisory-db/blob/master/gems/jwt/CVE-2026-45363.yml
cve.org/CVERecord?id=CVE-2026-45363
github.com/advisories/GHSA-c32j-vqhx-rx3x
github.com/CVEProject/cvelistV5/tree/main/cves/2026/45xxx/CVE-2026-45363.json
nvd.nist.gov/vuln/detail/CVE-2026-45363
security-tracker.debian.org/tracker/CVE-2026-45363
github.com/jwt/ruby-jwt
access.redhat.com/errata/RHSA-2026:63327
access.redhat.com/security/updates/classification
bugzilla.redhat.com/show_bug.cgi?id=2484099
bugzilla.redhat.com/show_bug.cgi?id=2492015
bugzilla.redhat.com/show_bug.cgi?id=2499928
bugzilla.redhat.com/show_bug.cgi?id=2500739
bugzilla.redhat.com/show_bug.cgi?id=2510825
bugzilla.redhat.com/show_bug.cgi?id=2510831
bugzilla.redhat.com/show_bug.cgi?id=2511026
issues.redhat.com/browse/SAT-48474
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_63327.json
access.redhat.com/security/cve/CVE-2026-10051
cve.org/CVERecord?id=CVE-2026-10051
nvd.nist.gov/vuln/detail/CVE-2026-10051
gitlab.eclipse.org/security/cve-assignment/-/work_items/119
access.redhat.com/security/cve/CVE-2026-34993
cve.org/CVERecord?id=CVE-2026-34993
nvd.nist.gov/vuln/detail/CVE-2026-34993
github.com/aio-libs/aiohttp/commit/dcf40f30637e8752c76781cf6703b5a236749a00
github.com/aio-libs/aiohttp/security/advisories/GHSA-jg22-mg44-37j8
access.redhat.com/security/cve/CVE-2026-45363
access.redhat.com/security/cve/CVE-2026-54512
cve.org/CVERecord?id=CVE-2026-54512
nvd.nist.gov/vuln/detail/CVE-2026-54512
github.com/FasterXML/jackson-databind/commit/434d6c511de7fdd9872f29157aafb6162d12d8d5
github.com/FasterXML/jackson-databind/issues/5988
github.com/FasterXML/jackson-databind/security/advisories/GHSA-j3rv-43j4-c7qm
access.redhat.com/security/cve/CVE-2026-68494
cve.org/CVERecord?id=CVE-2026-68494
nvd.nist.gov/vuln/detail/CVE-2026-68494
github.com/FasterXML/jackson-core/commit/050b429804dce2a7e08f0be1b0b4c3d040fdb9cd
github.com/FasterXML/jackson-core/commit/4cdd529749da396cc7edf6d4a2aad41d47902641
github.com/FasterXML/jackson-core/commit/c5941e5aae7fd5aeac55d66933cfb82b9aabeef8
github.com/FasterXML/jackson-core/pull/1611
github.com/FasterXML/jackson-core/security/advisories/GHSA-r7wm-3cxj-wff9
github.com/advisories/GHSA-72hv-8253-57qq
cve.org/CVERecord?id=CVE-2026-18401
access.redhat.com/security/cve/CVE-2026-69243
cve.org/CVERecord?id=CVE-2026-69243
nvd.nist.gov/vuln/detail/CVE-2026-69243
github.com/aio-libs/aiohttp/commit/6ae358f0983c3f4d6f67692b2f8e65dc8e091c98
github.com/aio-libs/aiohttp/pull/13017
github.com/aio-libs/aiohttp/releases/tag/v3.14.2
github.com/aio-libs/aiohttp/security/advisories/GHSA-mfx4-hv73-q22v
access.redhat.com/security/cve/CVE-2026-69244
cve.org/CVERecord?id=CVE-2026-69244
nvd.nist.gov/vuln/detail/CVE-2026-69244
github.com/aio-libs/aiohttp/commit/49f65d54150397892f7bcc4aae887767d51c322d
github.com/aio-libs/aiohttp/pull/13223
github.com/aio-libs/aiohttp/releases/tag/v3.14.3
github.com/aio-libs/aiohttp/security/advisories/GHSA-cq5v-8q36-5273
access.redhat.com/errata/RHSA-2026:63385
issues.redhat.com/browse/SAT-45592
issues.redhat.com/browse/SAT-46105
issues.redhat.com/browse/SAT-48574
issues.redhat.com/browse/SAT-48584
issues.redhat.com/browse/SAT-48585
issues.redhat.com/browse/SAT-48586
issues.redhat.com/browse/SAT-48587
issues.redhat.com/browse/SAT-48588
issues.redhat.com/browse/SAT-48589
issues.redhat.com/browse/SAT-48628
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_63385.json
access.redhat.com/security/cve/CVE-2026-11332
bugzilla.redhat.com/show_bug.cgi?id=2485379
cve.org/CVERecord?id=CVE-2026-11332
nvd.nist.gov/vuln/detail/CVE-2026-11332
github.com/ansible/ansible
access.redhat.com/security/cve/CVE-2026-16493
bugzilla.redhat.com/show_bug.cgi?id=2503724
cve.org/CVERecord?id=CVE-2026-16493
nvd.nist.gov/vuln/detail/CVE-2026-16493
access.redhat.com/security/cve/CVE-2026-42215
bugzilla.redhat.com/show_bug.cgi?id=2467802
cve.org/CVERecord?id=CVE-2026-42215
nvd.nist.gov/vuln/detail/CVE-2026-42215
github.com/gitpython-developers/GitPython/releases/tag/3.1.47
github.com/gitpython-developers/GitPython/security/advisories/GHSA-rpm5-65cw-6hj4
access.redhat.com/security/cve/CVE-2026-42284
bugzilla.redhat.com/show_bug.cgi?id=2467800
cve.org/CVERecord?id=CVE-2026-42284
nvd.nist.gov/vuln/detail/CVE-2026-42284
github.com/gitpython-developers/GitPython/security/advisories/GHSA-x2qx-6953-8485
access.redhat.com/security/cve/CVE-2026-44244
bugzilla.redhat.com/show_bug.cgi?id=2467804
cve.org/CVERecord?id=CVE-2026-44244
nvd.nist.gov/vuln/detail/CVE-2026-44244
github.com/gitpython-developers/GitPython/releases/tag/3.1.49
github.com/gitpython-developers/GitPython/security/advisories/GHSA-v87r-6q3f-2j67
access.redhat.com/security/cve/CVE-2026-73620
bugzilla.redhat.com/show_bug.cgi?id=2515261
cve.org/CVERecord?id=CVE-2026-73620
nvd.nist.gov/vuln/detail/CVE-2026-73620
github.com/gitpython-developers/GitPython/security/advisories/GHSA-3f7w-8rr8-f37f
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-and-read
access.redhat.com/security/cve/CVE-2026-73622
bugzilla.redhat.com/show_bug.cgi?id=2515269
cve.org/CVERecord?id=CVE-2026-73622
nvd.nist.gov/vuln/detail/CVE-2026-73622
github.com/gitpython-developers/GitPython/commit/8ac5a30519b6f4af85398b9b9d7064ff4d452da2
github.com/gitpython-developers/GitPython/security/advisories/GHSA-94p4-4cq8-9g67
vulncheck.com/advisories/gitpython-before-environment-variable-exfiltration-via-remote-add
access.redhat.com/security/cve/CVE-2026-73623
bugzilla.redhat.com/show_bug.cgi?id=2515275
cve.org/CVERecord?id=CVE-2026-73623
nvd.nist.gov/vuln/detail/CVE-2026-73623
github.com/gitpython-developers/GitPython/security/advisories/GHSA-6p8h-3wgx-97gf
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-template
access.redhat.com/security/cve/CVE-2026-73624
bugzilla.redhat.com/show_bug.cgi?id=2515243
cve.org/CVERecord?id=CVE-2026-73624
nvd.nist.gov/vuln/detail/CVE-2026-73624
github.com/gitpython-developers/GitPython/security/advisories/GHSA-fjr4-x663-mwxc
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-diff
access.redhat.com/security/cve/CVE-2026-73625
bugzilla.redhat.com/show_bug.cgi?id=2515272
cve.org/CVERecord?id=CVE-2026-73625
nvd.nist.gov/vuln/detail/CVE-2026-73625
github.com/gitpython-developers/GitPython/security/advisories/GHSA-r9mr-m37c-5fr3
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-kwarg-value-smuggling
access.redhat.com/security/cve/CVE-2026-76218
bugzilla.redhat.com/show_bug.cgi?id=2519603
cve.org/CVERecord?id=CVE-2026-76218
nvd.nist.gov/vuln/detail/CVE-2026-76218
github.com/gitpython-developers/GitPython/security/advisories/GHSA-9rj7-rf2p-w77r
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-repo-init
access.redhat.com/security/cve/CVE-2026-76219
bugzilla.redhat.com/show_bug.cgi?id=2519597
cve.org/CVERecord?id=CVE-2026-76219
nvd.nist.gov/vuln/detail/CVE-2026-76219
github.com/gitpython-developers/GitPython/security/advisories/GHSA-4gmw-gg2m-w46p
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-read-tree
access.redhat.com/security/cve/CVE-2026-76220
bugzilla.redhat.com/show_bug.cgi?id=2519610
cve.org/CVERecord?id=CVE-2026-76220
nvd.nist.gov/vuln/detail/CVE-2026-76220
github.com/gitpython-developers/GitPython/security/advisories/GHSA-wvpp-8hx9-p66j
vulncheck.com/advisories/gitpython-before-command-execution-via-split-single-char-options
access.redhat.com/security/cve/CVE-2026-76221
bugzilla.redhat.com/show_bug.cgi?id=2519596
cve.org/CVERecord?id=CVE-2026-76221
nvd.nist.gov/vuln/detail/CVE-2026-76221
github.com/gitpython-developers/GitPython/security/advisories/GHSA-jm78-9fvv-mhgr
vulncheck.com/advisories/gitpython-before-config-injection-via-option-name
access.redhat.com/security/cve/CVE-2026-76222
bugzilla.redhat.com/show_bug.cgi?id=2519609
cve.org/CVERecord?id=CVE-2026-76222
nvd.nist.gov/vuln/detail/CVE-2026-76222
github.com/gitpython-developers/GitPython/security/advisories/GHSA-hmq2-w58f-27jc
vulncheck.com/advisories/gitpython-before-path-traversal-via-gitmodules-submodule-name
access.redhat.com/errata/RHSA-2026:63386
issues.redhat.com/browse/SAT-46099
issues.redhat.com/browse/SAT-48690
issues.redhat.com/browse/SAT-48691
issues.redhat.com/browse/SAT-48692
issues.redhat.com/browse/SAT-48693
issues.redhat.com/browse/SAT-48697
issues.redhat.com/browse/SAT-49372
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_63386.json
access.redhat.com/errata/RHSA-2026:63387
issues.redhat.com/browse/SAT-42127
issues.redhat.com/browse/SAT-45924
issues.redhat.com/browse/SAT-48680
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_63387.json
ubuntu.com/security/CVE-2026-45363