Skip to main content

Rack CVE-2026-26962

| EUVDEUVD-2026-18417 MEDIUM
Improper Neutralization of CRLF Sequences ('CRLF Injection') (CWE-93)
2026-04-02 GitHub_M GHSA-rx22-g9mx-qrhv
6.5
CVSS 3.1 · NVD
View

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A05:2025 - Injection
ASVS 5.0
V1 - Encoding and Sanitization CRLF sequence sanitization
Impact

This vulnerability presents moderate real-world risk despite its 4.8 CVSS score. The CVSS vector indicates network-accessible attack surface (AV:N) but high complexity (AC:H), requiring attackers to craft specially-formatted multipart requests with precise obs-fold sequences-this complexity barrier significantly reduces opportunistic exploitation. The unauthenticated scope (PR:N, UI:N) means any remote client can attempt the attack without credentials or user interaction. However, the actual impact depends critically on downstream application behavior: the vulnerability only becomes exploitable if the application (1) parses multipart requests via Rack, (2) extracts the vulnerable parsed values, and (3) uses them directly in HTTP response headers without sanitization. Many applications use these values in form processing or file uploads where they never touch response headers, making exploitation impossible. EPSS data is not provided, but the AC:H vector and contextual dependency suggest lower exploitation probability than the CVSS base score implies. The confidentiality and integrity impacts (C:L, I:L) are conditional on successful header injection exploitation. Per SSVC framework: exploitation status is unconfirmed (no KEV, no POC identified), automatable only if targets are explicitly known to misuse parsed values in responses, and technical impact is partial (response splitting is serious but does not enable full system compromise). This is a legitimate patch-worthy vulnerability but not an emergency-prioritize based on whether your applications actually use multipart parameters in response headers.

Exploit ScenarioDerived

An attacker submits a multipart form request with a specially-crafted Content-Disposition header containing an obs-fold sequence (e.g., filename="test.pdf"\r \x20X-Injected-Header: malicious) to a vulnerable Ruby web application. The Rack parser unfolds this header but retains the embedded CRLF, storing the malicious CRLF in the parsed filename parameter. If the application reflects this filename in a response header-for example, via Content-Disposition: attachment; filename=#{uploaded_filename}-the injected CRLF breaks the header boundary, allowing the attacker to inject arbitrary headers (e.g., Set-Cookie, Location) or split the response to inject malicious content into the response body. This could facilitate session hijacking via Set-Cookie injection, cache poisoning in shared proxies, or credential theft via Location header redirection. High request complexity (AC:H) makes opportunistic scanning difficult; exploitation requires knowledge of specific downstream application behavior.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Apr 02, 2026

Rack versions 3.2.0 through 3.2.5 fail to properly unfold folded multipart headers containing obs-fold sequences, preserving embedded CRLF characters in parsed parameter values like filename and name. This allows unauthenticated remote attackers with high request complexity to inject HTTP response headers or split responses when applications reuse these parsed values, leading to potential session hijacking, cache poisoning, or credential theft. The vulnerability carries a moderate CVSS score of

Earlier versions of this analysis (1)
v1 Apr 02, 2026 - 17:30 CVSS 4.8

Rack versions 3.2.0 through 3.2.5 fail to properly unfold folded multipart headers containing obs-fold sequences, preserving embedded CRLF characters in parsed parameter values like filename and name. This allows unauthenticated remote attackers with high request complexity to inject HTTP response headers or split responses when applications reuse these parsed values, leading to potential session hijacking, cache poisoning, or credential theft. The vulnerability carries a moderate CVSS score of 4.8 and no public exploit code has been identified at time of analysis.

RemediationAI

Upgrade Rack to version 3.2.6 or later immediately. In Gemfile, update the rack dependency to gem 'rack', '~> 3.2.6' or gem 'rack', '>= 3.2.6', then run bundle update rack and deploy. If immediate upgrade is not feasible, applications can implement defensive mitigation by explicitly sanitizing multipart parameter values before using them in HTTP response headers-remove or encode any CRLF sequences from filename, name, and other parsed multipart parameters if they are written to response headers. However, patching is the recommended approach. For Rails applications, ensure you are using a Rails version that depends on patched Rack (Rails 8.0.1+ or equivalent maintenance releases; check Rails release notes against your version). See GitHub security advisory GHSA-rx22-g9mx-qrhv for additional context.

Affected VersionsENISA

rack 3.2.0, < 3.2.6

Affected Packages

rubygems rack fix: 3.2.6

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in rubygems

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Rack is a foundational Ruby web server interface library that standardizes HTTP request/response handling across multiple Ruby frameworks. The vulnerability resides in the Rack::Multipart::Parser module, which processes multipart/form-data request bodies per RFC 2045/2046. RFC 5322 defines obs-fold (obsolete line folding) as a CRLF sequence followed by whitespace, used historically to continue header values across multiple lines. RFC 7578 extends this to multipart headers. The parser incorrectly preserves the embedded CRLF within the unfolded value instead of removing it per RFC 5322 Section 2.2.3, which states folded whitespace must be replaced with a single space during unfolding. When applications extract parsed multipart parameters (name, filename) and use them in HTTP response headers without additional sanitization, this leftover CRLF can break the header boundary and inject arbitrary headers or HTTP request content into the response body-a class CWE-93 (Type Confusion) issue that manifests as improper handling of special characters in structured data. The vulnerability affects all Rack versions from 3.2.0 onwards until the patched 3.2.6 release.

Know when Rack gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 6.5 MEDIUM
AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N
SUSE 4.8 MEDIUM
AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N
Red Hat 4.8 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

3
CVSS changed
Jul 24, 2026 - 21:22 NVD
4.8 (MEDIUM) 6.5 (MEDIUM)
Patch released
Apr 03, 2026 - 02:30 nvd
Patch available
CVE Published
Apr 02, 2026 - 17:10 nvd
MEDIUM 4.8

DescriptionNVD

Rack is a modular Ruby web server interface. From version 3.2.0 to before version 3.2.6, Rack::Multipart::Parser unfolds folded multipart part headers incorrectly. When a multipart header contains an obs-fold sequence, Rack preserves the embedded CRLF in parsed parameter values such as filename or name instead of removing the folded line break during unfolding. As a result, applications that later reuse those parsed values in HTTP response headers may be vulnerable to downstream header injection or response splitting. This issue has been patched in version 3.2.6.

Threat Intelligence Overview

EPSS Score
0.0%
Top 88% exploitable
Threat Intel
1
1 source
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

32
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +32
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Code Injection CRITICAL

Code injection occurs when an application accepts user input and passes it directly into a language interpreter or evaluator without proper sanitization.

More in Rack

View all
CVE-2026-22860 HIGH POC
7.5 Feb 18

Directory traversal in Rack versions prior to 2.2.22, 3.1.20, and 3.2.5 allows unauthenticated remote attackers to list

CVE-2024-26141 HIGH POC
7.5 Feb 29

Rack is a modular Ruby web server interface. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2024-25126 HIGH POC
7.5 Feb 29

Rack is a modular Ruby web server interface. Rated high severity (CVSS 7.5), this vulnerability is remotely exploitable,

CVE-2020-8184 HIGH POC
7.5 Jun 19

A reliance on cookies without validation/integrity check security vulnerability exists in rack < 2.2.3, rack < 2.1.4 tha

CVE-2022-30123 CRITICAL
10.0 Dec 05

A sequence injection vulnerability exists in Rack <2.0.9.1, <2.1.4.1 and <2.2.3.1 which could allow is a possible shell

CVE-2025-25184 MEDIUM POC
5.7 Feb 12

Rack provides an interface for developing web applications in Ruby. Rated medium severity (CVSS 5.7), this vulnerability

CVE-2026-25500 MEDIUM POC
5.4 Feb 18

Rack's Directory module fails to sanitize filenames when generating HTML directory listings, allowing attackers to craft

CVE-2026-39324 CRITICAL
9.3 Apr 07

Session authentication bypass in Rack::Session::Cookie 2.0.0 through 2.1.1 allows unauthenticated remote attackers to fo

CVE-2020-8161 HIGH
8.6 Jul 02

A directory traversal vulnerability exists in rack < 2.2.0 that allows an attacker perform directory traversal vulnerabi

CVE-2013-0263 MEDIUM
5.1 Feb 08

Rack::Session::Cookie in Rack 1.5.x before 1.5.2, 1.4.x before 1.4.5, 1.3.x before 1.3.10, 1.2.x before 1.2.8, and 1.1.x

CVE-2023-27530 HIGH
7.5 Mar 10

A DoS vulnerability exists in Rack <v3.0.4.2, <v2.2.6.3, <v2.1.4.3 and <v2.0.9.3 within in the Multipart MIME parsing co

CVE-2025-61772 HIGH
7.5 Oct 07

Memory exhaustion denial of service in the Ruby Rack web server interface (versions prior to 2.2.19, 3.1.17, and 3.2.2)

Vendor StatusVendor

SUSE

Severity: Medium
Product Status
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 15 SP7 Fixed
SUSE Linux Enterprise High Availability Extension 16.1 Fixed
SUSE Linux Enterprise High Performance Computing 15 SP7 Fixed
SUSE Linux Enterprise Module for Public Cloud 15 SP7 Fixed

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy