CVE-2026-26962: 
Ruby vulnerability analysis and mitigation

Overview

CVE-2026-26962 is a CRLF injection vulnerability in the Rack Ruby web server interface affecting versions 3.2.0 through 3.2.5. The flaw exists in Rack::Multipart::Parser, which incorrectly unfolds folded multipart part headers, preserving embedded CRLF sequences in parsed parameter values such as filename or name. Applications that subsequently reuse these parsed values in HTTP response headers may be vulnerable to header injection or response splitting. The vulnerability was published on April 2, 2026, and patched in version 3.2.6. It carries a CVSS v3.1 base score of 4.8 (Moderate) per the GitHub Security Advisory (GitHub Advisory, Rack Advisory).

Technical details

The root cause is classified as CWE-93 (Improper Neutralization of CRLF Sequences). Rack::Multipart::Parser accepts folded multipart header values (obs-fold sequences per RFC 7230) and attempts to unfold them during parsing, but fails to fully strip the embedded \r\n line break. For example, a crafted Content-Disposition header such as Content-Disposition: form-data; name="file"; filename="test\r\n foo.txt" results in a parsed filename value that still contains the CRLF characters. The attack vector is network-based, requires no privileges or user interaction, but has high attack complexity since exploitation depends on the downstream application behavior — specifically, whether it reflects multipart-derived metadata (e.g., filename) directly into HTTP response headers without sanitization (GitHub Advisory, Rack Advisory).

Impact

Successful exploitation can lead to HTTP response header injection or response splitting in applications that reuse parsed multipart metadata (such as filename or name) in HTTP response headers. Downstream consequences may include session hijacking, cache poisoning, cross-site scripting via injected headers, or manipulation of HTTP responses delivered to end users. Availability is not impacted, and the confidentiality and integrity impacts are limited in scope; the practical severity depends heavily on whether the affected application reflects multipart-derived values into response headers (GitHub Advisory, Rack Advisory).

Exploitability

There is no known public proof-of-concept exploit and no evidence of in-the-wild exploitation at this time (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.023% (7th percentile), indicating a low probability of exploitation in the near term. No threat actor attribution has been reported.

Exploitation steps

  1. Identify a target application: Locate a Ruby web application using Rack versions 3.2.0–3.2.5 that accepts multipart form uploads and reflects parsed multipart metadata (e.g., filename) into HTTP response headers (e.g., Content-Disposition in a download response).
  2. Craft a malicious multipart request: Construct an HTTP multipart POST request where the Content-Disposition header of a part contains an obs-fold sequence with an embedded CRLF, such as:
Content-Disposition: form-data; name="file"; filename="test\r\n X-Injected: malicious"
  1. Submit the request: Send the crafted multipart request to the target application's file upload endpoint.
  2. Trigger header reflection: If the application subsequently uses the parsed filename value in an HTTP response header (e.g., Content-Disposition: attachment; filename=<parsed_value>), the preserved CRLF will inject an additional header (X-Injected: malicious) into the response.
  3. Achieve objective: Depending on the injected content, the attacker may split the HTTP response to inject arbitrary headers, poison caches, or manipulate client-side behavior for session hijacking or phishing (GitHub Advisory, Rack Advisory).

Indicators of compromise

  • Network: Multipart POST requests containing \r\n (URL-encoded as %0d%0a) or literal CRLF sequences within Content-Disposition parameter values (e.g., filename or name) in HTTP request bodies.
  • Logs: Web server or application access logs showing multipart upload requests with unusual whitespace or line-folding patterns in header parameter values; HTTP responses containing unexpected or duplicate headers not set by the application.
  • Application Behavior: HTTP responses to clients that include injected or unexpected headers (e.g., Set-Cookie, Location, or custom headers) not originating from application logic, particularly following file upload operations.

Mitigation and workarounds

The primary remediation is to upgrade Rack to version 3.2.6 or later, which correctly strips CRLF sequences when unfolding folded multipart header values (GitHub Advisory). As a workaround for applications that cannot immediately upgrade, developers should sanitize or reject carriage return (\r) and line feed (\n) characters in any multipart-derived values (such as filename or name) before using them in HTTP response headers, logs, or other protocol-sensitive contexts. Additionally, avoid directly reflecting upload metadata into response headers without normalization. IBM has also released patches for affected products including IBM Aspera Faspex, IBM Aspera Shares, and IBM API Connect (IBM Aspera Faspex, IBM API Connect).

Community reactions

The vulnerability was reported by researcher wtn, with remediation development credited to ioquatix (Rack maintainer) and coordination support from jeremyevans (Rack Advisory). Ubuntu issued security notice USN-8182-1 addressing this and related Rack vulnerabilities, and SUSE released security updates (SUSE-SU-2026:1745-1 and SUSE-SU-2026:1964-1). IBM published multiple advisories for downstream products incorporating Rack. No significant social media discussion or broader media coverage has been identified.

Additional resources

Linux Distribution fix status

Fix availability across major Linux distributions and their releases.

Debian

Fixed

bookworm

ruby-rack

Fixed

sid

ruby-rack: 3.2.6-2

Fixed

trixie

ruby-rack: 3.1.20-0+deb13u2

Fixed

Ubuntu

Fixed

devel

ruby-rack

Affected

noble

ruby-rack: 2.2.7-1ubuntu0.7

Fixed

questing

ruby-rack: 3.1.16-0.1ubuntu0.3

Fixed

resolute

ruby-rack

Affected

RHEL / CentOS

Affected

OpenShift

openshift-logging/cluster-logging-operator-bundle

Affected

RHEL 8

pcs.src

Affected

RHEL 9

pcs.src

Affected

RHEL 10

pcs.src

Affected

Source: This report was generated using AI

Related Ruby vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-110264CRITICAL10
  • Ruby logoRuby
  • rubygem-rdoc
NoYesOct 22, 2026
GHSA-h7x6-9mqf-vgmxHIGH8.2
  • Ruby logoRuby
  • avo
NoYesOct 22, 2026
GHSA-x65r-p6hf-94hvMEDIUM6.5
  • Ruby logoRuby
  • avo
NoYesOct 22, 2026
GHSA-58rx-96gf-w92xMEDIUM6.1
  • Ruby logoRuby
  • ransack
NoYesOct 25, 2026
CVE-2026-63183LOWN/A
  • Ruby logoRuby
  • omniauth
NoNoOct 22, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Additional Wiz resources

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management