ManageIQ / ManageIQ/dbus_api_service

CVE-2025-46727 (High) detected in rack-2.2.9.gem

Open Beginner friendly
#61 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Mend: dependency security vulnerability stale
Dominant language
Ruby
Stars
1
Forks
12
PR merge metrics
No merged PRs in 30d

Description

## CVE-2025-46727 - High Severity Vulnerability
Vulnerable Library - rack-2.2.9.gem

Rack provides a minimal, modular and adaptable interface for developing
web applications in Ruby. By wrapping HTTP requests and responses in
the simplest way possible, it unifies and distills the API for web
servers, web frameworks, and software in between (the so-called
middleware) into a single method call.


Library home page: https://rubygems.org/gems/rack-2.2.9.gem


Path to dependency file: /Gemfile.lock


Path to vulnerable library: /home/wss-scanner/.gem/ruby/3.2.0/cache/rack-2.2.9.gem


Dependency Hierarchy:
- rack-test-2.1.0.gem (Root Library)
- :x: **rack-2.2.9.gem** (Vulnerable Library)

Found in base branch: master



Vulnerability Details



Rack is a modular Ruby web server interface. Prior to versions 2.2.14, 3.0.16, and 3.1.14, "Rack::QueryParser" parses query strings and "application/x-www-form-urlencoded" bodies into Ruby data structures without imposing any limit on the number of parameters, allowing attackers to send requests with extremely large numbers of parameters. The vulnerability arises because "Rack::QueryParser" iterates over each "&"-separated key-value pair and adds it to a Hash without enforcing an upper bound on the total number of parameters. This allows an attacker to send a single request containing hundreds of thousands (or more) of parameters, which consumes excessive memory and CPU during parsing. An attacker can trigger denial of service by sending specifically crafted HTTP requests, which can cause memory exhaustion or pin CPU resources, stalling or crashing the Rack server. This results in full service disruption until the affected worker is restarted. Versions 2.2.14, 3.0.16, and 3.1.14 fix the issue. Some other mitigations are available. One may use middleware to enforce a maximum query string size or parameter count, or employ a reverse proxy (such as Nginx) to limit request sizes and reject oversized query strings or bodies. Limiting request body sizes and query string lengths at the web server or CDN level is an effective mitigation.
Mend Note: The description of this vulnerability differs from MITRE.

Publish Date: 2025-05-07

URL: CVE-2025-46727



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


Release Date: 2025-05-07


Fix Resolution: https://github.com/rack/rack.git - v3.0.16,https://github.com/rack/rack.git - v3.1.14,https://github.com/rack/rack.git - v2.2.14

***
Step up your Open Source Security Game with Mend [here](https://www.whitesourcesoftware.com/full_solution_bolt_github)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with Gemfile.lock and the rack-test-2.1.0 dependency entry to confirm why rack 2.2.9 is selected. Update the resolved Rack version to 2.2.14 or later, then verify that the lockfile no longer selects the vulnerable version and the dependency update is complete.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
backend, security
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.