Cloudanix VulnDB

CVE-2025-49007

None

CVSS

—

EPSS

0.6%

Published

Jun 4, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A problem in how some Ruby web servers read certain file-upload headers lets attackers slow websites down or make them unavailable by sending specially crafted data.

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

Crafted Content-Disposition headers trigger catastrophic backtracking during parsing in Rack versions 3.1.0 through 3.1.15, consuming excessive CPU time on multipart request handling and enabling denial of service.

Why it matters to the business

Web applications using Rack for file uploads or multipart forms can experience prolonged response times or complete unavailability, leading to service disruption for Rails-based sites and increased operational costs during sustained attacks.

How an attack unfolds

An attacker sends a single HTTP request containing a maliciously constructed Content-Disposition header to any endpoint that processes multipart form data. The Rack parser enters a slow path that consumes CPU resources for an extended period, potentially exhausting server capacity when multiple such requests are issued.

How to fix it

Upgrade Rack to version 3.1.16 or later, which includes the fix committed in df2f3f2804373acafc429ed9f0770847a9c6b226. Applications should restart after the update and verify multipart handling continues to function.

How to confirm the fix worked

Confirm the installed Rack gem version is at least 3.1.16, test multipart form submissions with known benign inputs, and monitor request processing latency under load to ensure no regression to slow parsing behavior.

Typical attack path

  1. Identify a target endpoint accepting multipart/form-data POST requests
  2. Craft a Content-Disposition header value that induces excessive parsing time
  3. Transmit the request repeatedly or in volume to amplify resource consumption
  4. Observe service degradation or outage as CPU is exhausted

How to detect it

Examine web server and application logs for multipart requests with unusually long processing times or high CPU usage on Rack worker processes; correlate with request timestamps showing repeated submissions from the same sources.

What your security team should do

  • Immediately upgrade all Rack installations to 3.1.16 or newer
  • Review and prioritize patching of internet-facing Rails applications first
  • Implement request rate limiting on multipart endpoints as a temporary control
  • Add monitoring for unusually long request durations in application logs

The record

Rack is a modular Ruby web server interface. Starting in version 3.1.0 and prior to version 3.1.16, there is a denial of service vulnerability in the Content-Disposition parsing component of Rack. This is very similar to the previous security issue CVE-2022-44571. Carefully crafted input can cause Content-Disposition header parsing in Rack to take an unexpected amount of time, possibly resulting in a denial of service attack vector. This header is used typically used in multipart parsing. Any applications that parse multipart posts using Rack (virtually all Rails applications) are impacted. Version 3.1.16 contains a patch for the vulnerability.

Affected packages

Ecosystem Package Introduced Fixed
RubyGems rack 3.1.0 3.1.16
Chainguard logstash-8 0 8.18.2-r1
Chainguard logstash-8-bitnami-compat 0 8.18.2-r1
Chainguard logstash-8-compat 0 8.18.2-r1
Chainguard logstash-8-env2yaml 0 8.18.2-r1
Chainguard logstash-8-iamguarded-compat 0 8.18.2-r1
Chainguard logstash-8-with-output-opensearch 0 8.18.2-r1
Chainguard ruby3.2-rails-7.1 0 7.1.5.1-r8
Chainguard ruby3.2-rails-7.1-compat 0 7.1.5.1-r8
Chainguard ruby3.2-rails-7.2 0 7.2.2.1-r8
Chainguard ruby3.2-rails-7.2-compat 0 7.2.2.1-r8
Chainguard ruby3.2-rails-8.0 0 8.0.2-r5
Chainguard ruby3.2-rails-8.0-compat 0 8.0.2-r5
Chainguard ruby3.3-rails-7.1 0 7.1.5.1-r8
Chainguard ruby3.3-rails-7.1-compat 0 7.1.5.1-r8
Chainguard ruby3.3-rails-7.2 0 7.2.2.1-r8
Chainguard ruby3.3-rails-7.2-compat 0 7.2.2.1-r8
Chainguard ruby3.3-rails-8.0 0 8.0.2-r5
Chainguard ruby3.3-rails-8.0-compat 0 8.0.2-r5
Chainguard ruby3.4-rails-7.1 0 7.1.5.1-r8
Chainguard ruby3.4-rails-7.1-compat 0 7.1.5.1-r8
Chainguard ruby3.4-rails-7.2 0 7.2.2.1-r8
Chainguard ruby3.4-rails-7.2-compat 0 7.2.2.1-r8
Chainguard ruby3.4-rails-8.0 0 8.0.2-r5
Chainguard ruby3.4-rails-8.0-compat 0 8.0.2-r5
Debian:13 ruby-rack 0 No fix
Mageia:9 ruby-rack 0 2.2.21-1.mga9
Wolfi logstash-8 0 8.18.2-r1
Wolfi logstash-8-bitnami-compat 0 8.18.2-r1
Wolfi logstash-8-compat 0 8.18.2-r1
Wolfi logstash-8-env2yaml 0 8.18.2-r1
Wolfi logstash-8-iamguarded-compat 0 8.18.2-r1
Wolfi logstash-8-with-output-opensearch 0 8.18.2-r1
Wolfi ruby3.2-rails-8.0 0 8.0.2-r5
Wolfi ruby3.2-rails-8.0-compat 0 8.0.2-r5
Wolfi ruby3.3-rails-8.0 0 8.0.2-r5
Wolfi ruby3.3-rails-8.0-compat 0 8.0.2-r5
Wolfi ruby3.4-rails-8.0 0 8.0.2-r5
Wolfi ruby3.4-rails-8.0-compat 0 8.0.2-r5
gem rack 3.1.0 3.1.16

Related vulnerabilities