Skip to content

fastlane-2.232.1.gem: 3 vulnerabilities (highest severity is: 8.2) #223

@appcues-wss

Description

@appcues-wss
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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions