Back

MEDIUM

Rack: `Rack::Request` accepts invalid Host characters, enabling host allowlist bypass.

Published Apr 2, 2026

Description

Rack is a modular Ruby web server interface. From versions 3.0.0.beta1 to before 3.1.21, and 3.2.0 to before 3.2.6, Rack::Request parses the Host header using an AUTHORITY regular expression that accepts characters not permitted in RFC-compliant hostnames, including /, ?, #, and @. Because req.host returns the full parsed value, applications that validate hosts using naive prefix or suffix checks can be bypassed. This can lead to host header poisoning in applications that use req.host, req.url, or req.base_url for link generation, redirects, or origin validation. This issue has been patched in versions 3.1.21 and 3.2.6.

Affected products

Remediation

Red Hat mitigation

Mitigation for this issue is either not available or the currently available options do not meet the Red Hat Product Security criteria comprising ease of use and deployment, applicability to widespread installation base or stability.

Weaknesses (1)

References (8)

Change history (0)

No recorded changes yet.

Sources
CVE.org / MITRE
Status PUBLISHED
Assigner GitHub_M
Published Apr 2, 2026
Updated Apr 2, 2026
Reserved Mar 30, 2026
CISA Vulnrichment
Updated Apr 2, 2026
NVD
Status Analyzed
Modified Jul 24, 2026
Red Hat
Severity Moderate
Public date Apr 2, 2026
ENISA EUVD
Assigner GitHub_M
Published Apr 2, 2026
Updated Apr 2, 2026
Exploited since n/a
EUVD-2026-18478 GHSA-G2PF-XV49-M2H5