Vulnerable Library - fastlane-2.232.1.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Vulnerabilities
| CVE |
Severity |
CVSS |
Dependency |
Type |
Fixed in (fastlane version) |
Remediation Possible** |
| CVE-2026-33210 |
High |
8.2 |
json-2.18.1.gem |
Transitive |
N/A* |
❌ |
| CVE-2026-35611 |
High |
7.5 |
addressable-2.8.8.gem |
Transitive |
N/A* |
❌ |
| CVE-2026-45363 |
High |
7.4 |
jwt-2.10.2.gem |
Transitive |
N/A* |
❌ |
*For some transitive vulnerabilities, there is no version of direct dependency with a fix. Check the "Details" section below to see if there is a version of transitive dependency where vulnerability is fixed.
**In some cases, Remediation PR cannot be created automatically for a vulnerability despite the availability of remediation
Details
CVE-2026-33210
Vulnerable Library - json-2.18.1.gem
This is a JSON implementation as a Ruby extension in C.
Library home page: https://rubygems.org/gems/json-2.18.1.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
- fastlane-2.232.1.gem (Root Library)
- ❌ json-2.18.1.gem (Vulnerable Library)
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
Ruby JSON is a JSON implementation for Ruby. From version 2.14.0 to before versions 2.15.2.1, 2.17.1.2, and 2.19.2, a format string injection vulnerability can lead to denial of service attacks or information disclosure, when the allow_duplicate_key: false parsing option is used to parse user supplied documents. This issue has been patched in versions 2.15.2.1, 2.17.1.2, and 2.19.2.
Publish Date: 2026-03-20
URL: CVE-2026-33210
CVSS 3 Score Details (8.2)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: High
For more information on CVSS3 Scores, click here.
Suggested Fix
Type: Upgrade version
Origin: GHSA-3m6g-2423-7cp3
Release Date: 2026-03-19
Fix Resolution: json - 2.19.2,json - 2.17.1.2,json - 2.15.2.1
CVE-2026-35611
Vulnerable Library - addressable-2.8.8.gem
Addressable is an alternative implementation to the URI implementation that is
part of Ruby's standard library. It is flexible, offers heuristic parsing, and
additionally provides extensive support for IRIs and URI templates.
Library home page: https://rubygems.org/gems/addressable-2.8.8.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
- fastlane-2.232.1.gem (Root Library)
- ❌ addressable-2.8.8.gem (Vulnerable Library)
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.
Publish Date: 2026-04-07
URL: CVE-2026-35611
CVSS 3 Score Details (7.5)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: None
- Integrity Impact: None
- Availability Impact: High
For more information on CVSS3 Scores, click here.
Suggested Fix
Type: Upgrade version
Origin: sporkmonger/addressable@c87f768
Release Date: 2026-04-07
Fix Resolution: https://github.com/sporkmonger/addressable.git - addressable-2.9.0
CVE-2026-45363
Vulnerable Library - jwt-2.10.2.gem
A pure ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
Library home page: https://rubygems.org/gems/jwt-2.10.2.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
- fastlane-2.232.1.gem (Root Library)
- ❌ jwt-2.10.2.gem (Vulnerable Library)
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
"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:)"
Publish Date: 2026-05-18
URL: CVE-2026-45363
CVSS 3 Score Details (7.4)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: High
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: None
For more information on CVSS3 Scores, click here.
Suggested Fix
Type: Upgrade version
Origin: jwt/ruby-jwt@db560b7
Release Date: 2026-05-18
Fix Resolution: https://github.com/jwt/ruby-jwt.git - v3.2.0
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Vulnerabilities
*For some transitive vulnerabilities, there is no version of direct dependency with a fix. Check the "Details" section below to see if there is a version of transitive dependency where vulnerability is fixed.
**In some cases, Remediation PR cannot be created automatically for a vulnerability despite the availability of remediation
Details
Vulnerable Library - json-2.18.1.gem
This is a JSON implementation as a Ruby extension in C.
Library home page: https://rubygems.org/gems/json-2.18.1.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
Ruby JSON is a JSON implementation for Ruby. From version 2.14.0 to before versions 2.15.2.1, 2.17.1.2, and 2.19.2, a format string injection vulnerability can lead to denial of service attacks or information disclosure, when the allow_duplicate_key: false parsing option is used to parse user supplied documents. This issue has been patched in versions 2.15.2.1, 2.17.1.2, and 2.19.2.
Publish Date: 2026-03-20
URL: CVE-2026-33210
CVSS 3 Score Details (8.2)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: Low
- Integrity Impact: None
- Availability Impact: High
For more information on CVSS3 Scores, click here.Suggested Fix
Type: Upgrade version
Origin: GHSA-3m6g-2423-7cp3
Release Date: 2026-03-19
Fix Resolution: json - 2.19.2,json - 2.17.1.2,json - 2.15.2.1
Vulnerable Library - addressable-2.8.8.gem
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. It is flexible, offers heuristic parsing, and additionally provides extensive support for IRIs and URI templates.
Library home page: https://rubygems.org/gems/addressable-2.8.8.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
Addressable is an alternative implementation to the URI implementation that is part of Ruby's standard library. From 2.3.0 to before 2.9.0, within the URI template implementation in Addressable, two classes of URI template generate regular expressions vulnerable to catastrophic backtracking. Templates using the * (explode) modifier with any expansion operator (e.g., {foo*}, {+var*}, {#var*}, {/var*}, {.var*}, {;var*}, {?var*}, {&var*}) generate patterns with nested unbounded quantifiers that are O(2^n) when matched against a maliciously crafted URI. Templates using multiple variables with the + or # operators (e.g., {+v1,v2,v3}) generate patterns with O(n^k) complexity due to the comma separator being within the matched character class, causing ambiguous backtracking across k variables. When matched against a maliciously crafted URI, this can result in catastrophic backtracking and uncontrolled resource consumption, leading to denial of service. This vulnerability is fixed in 2.9.0.
Publish Date: 2026-04-07
URL: CVE-2026-35611
CVSS 3 Score Details (7.5)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: None
- Integrity Impact: None
- Availability Impact: High
For more information on CVSS3 Scores, click here.Suggested Fix
Type: Upgrade version
Origin: sporkmonger/addressable@c87f768
Release Date: 2026-04-07
Fix Resolution: https://github.com/sporkmonger/addressable.git - addressable-2.9.0
Vulnerable Library - jwt-2.10.2.gem
A pure ruby implementation of the RFC 7519 OAuth JSON Web Token (JWT) standard.
Library home page: https://rubygems.org/gems/jwt-2.10.2.gem
Path to dependency file: /example/Gemfile.lock
Path to vulnerable library: /example/Gemfile.lock
Dependency Hierarchy:
Found in HEAD commit: 3db7a414c18649ac89b74bbea1ae5f8072fd142d
Found in base branch: main
Vulnerability Details
"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:)"
Publish Date: 2026-05-18
URL: CVE-2026-45363
CVSS 3 Score Details (7.4)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: High
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: High
- Integrity Impact: High
- Availability Impact: None
For more information on CVSS3 Scores, click here.Suggested Fix
Type: Upgrade version
Origin: jwt/ruby-jwt@db560b7
Release Date: 2026-05-18
Fix Resolution: https://github.com/jwt/ruby-jwt.git - v3.2.0