CVE-2024-35231
High · 8.6CVSS
8.6
EPSS
0.7%
Published
May 27, 2024
CISA due date
—
Cloudanix analysis
A bug in a supporting Ruby library lets attackers send specially crafted web requests that can overwhelm and shut down the server, making the site unreachable until fixed.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Unbounded server-side resource allocation triggered by an unconstrained user-controlled profiler_runs parameter in the rack-contrib profiler middleware, allowing remote attackers to exhaust memory or CPU without authentication.
Why it matters to the business
Service denial leading to application unavailability, degraded performance for legitimate users, and potential operational disruption until the affected service is restarted or scaled.
How an attack unfolds
An attacker repeatedly submits HTTP requests containing an arbitrarily large value for the profiler_runs query parameter to the profiler middleware endpoint; because no upper bound exists, each request causes progressive allocation of server resources until the process becomes unresponsive or crashes.
How to fix it
Upgrade rack-contrib to version 2.5.0 or later, which includes the patch committed in d5265bc4f849f4bf55b230d3a0929e513acd5fac. If immediate upgrade is not feasible, disable the profiler middleware or add application-level input validation to cap profiler_runs.
How to confirm the fix worked
Confirm the installed rack-contrib version is 2.5.0 or newer; test by sending requests with profiler_runs values exceeding any intended limit and verify that the server rejects or caps the input without excessive resource use.
Typical attack path
- Identify an endpoint protected by rack-contrib profiler middleware
- Craft requests that include a large or repeated profiler_runs parameter
- Send high-volume requests from one or more sources without rate limiting
- Observe server resource exhaustion resulting in denial of service
How to detect it
Inspect web server and application logs for repeated requests to profiler-related paths that contain unusually large or repeated profiler_runs parameters; correlate with resource utilization spikes or process restarts.
- profiler_runs=
- /__rack__/profiler
- rack-contrib profiler
What your security team should do
- Apply the 2.5.0 upgrade across all environments within the next maintenance window
- Implement web application firewall rules to block or throttle requests containing large profiler_runs values
- Monitor application performance metrics for sudden spikes in memory or CPU correlated with profiler endpoints
- Review and restrict exposure of profiler middleware in production
The record
rack-contrib provides contributed rack middleware and utilities for Rack, a Ruby web server interface. Versions of rack-contrib prior to 2.5.0 are vulnerable to denial of service due to the fact that the user controlled data `profiler_runs` was not constrained to any limitation. This would lead to allocating resources on the server side with no limitation and a potential denial of service by remotely user-controlled data. Version 2.5.0 contains a patch for the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| RubyGems | rack-contrib | 0 | 2.5.0 |
| Ubuntu:16.04:LTS | ruby-rack-contrib | 0 | No fix |
| Ubuntu:18.04:LTS | ruby-rack-contrib | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | ruby-rack-contrib | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | ruby-rack-contrib | 0 | No fix |
Related vulnerabilities
- CVE-2026-114731 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 is affected by an uncontrolled… CWE-770
- CVE-2026-96377 Allocation of Resources Without Limits or Throttling vulnerability in Drupal Combined… CWE-770
- CVE-2026-96365 Allocation of Resources Without Limits or Throttling vulnerability in Drupal Webform… CWE-770
- CVE-2026-114723 Roundcube Webmail before 1.6.20 and 1.7.x before 1.7.5 allows the ImageMagick resource… CWE-770
- CVE-2026-113811 Algorithm::UrataniTakeda versions from 0.1.5 before 0.1.7 for Perl allow memory… CWE-770
- CVE-2026-113795 pypdf is a free and open-source pure-python PDF library. CWE-770
- CVE-2026-112400 Pillow is a Python imaging library. CWE-770
- CVE-2026-111064 AIOHTTP is an asynchronous HTTP client/server framework for asyncio and Python. CWE-770