CVE-2026-32762: 
Ruby vulnerability analysis and mitigation

Overview

CVE-2026-32762 is a Forwarded header semicolon injection vulnerability in the Rack Ruby web server interface that enables Host and Scheme spoofing. It affects Rack versions 3.0.0.beta1 through before 3.1.21 and 3.2.0 through before 3.2.6. The vulnerability was published on April 1–2, 2026, and patched versions 3.1.21 and 3.2.6 were released simultaneously. It carries a CVSS v3.1 base score of 4.8 (Moderate) per the GitHub Security Advisory, though NVD assigned a score of 6.5 (Medium) (GitHub Advisory, Rack Advisory).

Technical details

The root cause is an interpretation conflict (CWE-436) in Rack::Utils.forwarded_values, which parses the RFC 7239 Forwarded header by splitting on semicolons (;) before processing quoted-string values. Because RFC 7239 permits semicolons as literal content within quoted strings, a crafted header such as Forwarded: for="127.0.0.1;host=evil.com;proto=https" is incorrectly split by Rack into multiple directives (for, host, proto) rather than treated as a single for value. The vulnerable parsing logic is equivalent to calling forwarded_header.split(';') prior to any name=value pair parsing, which is inconsistent with the RFC specification. Exploitation requires a deployment where an upstream proxy, WAF, or intermediary preserves or validates the quoted Forwarded value differently from Rack, creating the interpretation discrepancy that enables parameter smuggling (Rack Advisory, GitHub Advisory).

Impact

Successful exploitation allows an attacker to smuggle attacker-controlled values for host, proto, for, or by parameters into Rack's derived request metadata, including req.host, req.scheme, req.base_url, and req.url. Applications that use these values for security-sensitive operations — such as generating password reset links, constructing redirects, absolute URL generation, logging, IP-based access decisions, or backend requests — may be vulnerable to host or scheme spoofing attacks. There is no availability impact, but both confidentiality and integrity are partially affected; the practical severity depends heavily on deployment architecture and whether clients can already supply arbitrary trusted Forwarded parameters (Rack Advisory).

Exploitability

There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation as of the time of disclosure (GitHub Advisory). The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. The EPSS score is approximately 0.05% (16th percentile), indicating a low near-term exploitation probability. Exploitation requires a specific deployment architecture where an upstream component and Rack interpret the same Forwarded header differently, raising the effective attack complexity.

Exploitation steps

  1. Identify target: Locate a Ruby web application using Rack versions 3.0.0.beta1–3.1.20 or 3.2.0–3.2.5 that sits behind a reverse proxy, WAF, or load balancer that preserves quoted Forwarded header values.
  2. Craft malicious header: Construct a Forwarded header with a quoted for value containing embedded semicolons and injected parameters, e.g., Forwarded: for="127.0.0.1;host=evil.com;proto=https".
  3. Send request: Submit an HTTP request to the target application with the crafted Forwarded header. The upstream intermediary passes the header through as a single quoted value (treating it as valid RFC 7239 content).
  4. Trigger parsing discrepancy: Rack's forwarded_values method splits on the semicolon before handling quoted strings, causing it to interpret host=evil.com and proto=https as separate directives rather than literal content of the for value.
  5. Achieve spoofing: The application now derives req.host as evil.com and req.scheme as https, enabling the attacker to influence password reset link generation, open redirects, absolute URL construction, or logging outputs with attacker-controlled values (Rack Advisory).

Indicators of compromise

  • Network: Inbound HTTP requests containing Forwarded headers with quoted values that include embedded semicolons and additional key=value pairs (e.g., Forwarded: for="<ip>;host=<domain>;proto=https").
  • Logs: Application or access logs showing unexpected or attacker-controlled values for Host, scheme, or base URL fields that differ from the actual request origin; password reset emails or redirect URLs referencing external or unexpected domains.
  • Application Behavior: Anomalous req.host, req.scheme, or req.base_url values in application logs that do not match the configured server hostname or the upstream proxy's reported values.

Mitigation and workarounds

Upgrade Rack to version 3.1.21 (for 3.1.x users) or 3.2.6 (for 3.2.x users), which fix the parsing of Forwarded quoted-string values before splitting on parameter delimiters (Rack Advisory). As a configuration-based workaround, strip inbound Forwarded headers at the edge (reverse proxy or WAF) and reconstruct them from trusted proxy metadata rather than passing client-supplied values through. Additionally, avoid using req.host, req.scheme, req.base_url, or req.url for security-sensitive operations (e.g., password reset links, redirects) unless the forwarding chain is explicitly trusted and validated. IBM has also issued advisories for affected products including IBM Aspera Faspex, Aspera Enterprise WebApps, Aspera Shares, and API Connect (IBM Aspera Faspex, IBM API Connect).

Community reactions

Ubuntu issued security notice USN-8182-1 addressing this vulnerability in the ruby-rack package (Ubuntu Advisory). IBM published multiple security bulletins covering affected products including Aspera Faspex, Aspera Enterprise WebApps, Aspera Shares, and API Connect (IBM Aspera Faspex). The vulnerability was credited to reporter th4s1s, with remediation development by jeremyevans and coordination by ioquatix (Rack Advisory). No significant broader social media or researcher commentary has been identified beyond standard vulnerability tracking coverage.

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

bionic (esm-apps)

ruby-rack

Not Affected

devel

ruby-rack

Affected

focal (esm-apps)

ruby-rack

Not Affected

jammy

ruby-rack

Not Affected

jammy (esm-apps)

ruby-rack

Not Affected

noble

ruby-rack

Not Affected

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