CVE-2026-126083

Description

A flaw was found in Action Pack. When deployed behind a reverse proxy that passes client-supplied headers through unchanged, the remote Internet Protocol (IP) address resolution mechanism prioritizes the Forwarded header over the X-Forwarded-For header without verifying consistency between them. An unauthenticated remote attacker can exploit this vulnerability by submitting a request with a crafted Forwarded header containing an arbitrary address. Successful exploitation allows the attacker to spoof their client IP address, potentially bypassing IP-based access controls and rate limits, as well as falsifying audit logs.

Statement

This vulnerability is rated as Important because remote, unauthenticated attackers can spoof their apparent IP address to circumvent IP-based authentication controls and request rate limits. In deployments where reverse proxies do not strip client-injected RFC 7239 headers while appending client addresses to traditional forwarding headers, the application prioritizes the untrusted header without triggering spoof detection checks. Exploitation requires specific proxy architecture preconditions, but a successful attack permits access restriction bypasses and compromises audit trail integrity.

Mitigation

Strip or overwrite the RFC 7239 `Forwarded` header at intermediate reverse proxies or ingress controllers before passing requests to the backend application.

In Nginx:

nginx
proxy_set_header Forwarded "";

In Apache HTTP Server:

apache
RequestHeader unset Forwarded

Alternatively, configure Rack to prioritize `X-Forwarded-For` by setting the following in a Rails application initializer (e.g., `config/initializers/rack.rb`):

ruby
Rack::Request.forwarded_priority = [:x_forwarded]

Warning: Modifying reverse proxy configurations requires reloading or restarting the proxy service (e.g., `systemctl reload httpd` or `systemctl reload nginx`), which may cause brief network interruptions. Disabling the `Forwarded` header causes Rack to ignore RFC 7239 headers when evaluating request scheme, host, and port information.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score7.4N/A7.4
Attack VectorNetworkN/ANetwork
Attack ComplexityHighN/AHigh
Privileges RequiredNoneN/ANone
User InteractionNoneN/ANone
ScopeUnchangedN/AUnchanged
ConfidentialityHighN/AHigh
Integrity ImpactHighN/AHigh
Availability ImpactNoneN/ANone

Vector

Red Hat: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

cve.org: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N

Understanding the Weakness (CWE)

Access Control

Technical Impact: Bypass Protection Mechanism; Gain Privileges or Assume Identity

An attacker could utilize the untrusted data source to bypass protection mechanisms and gain access to sensitive data.

Frequently Asked Questions

Want to get errata notifications? Sign up here.