Vulnerability details

CVE-2026-90711

proxy-addr proxy-addr

proxy-addr vulnerable to IP spoofing via IPv4-mapped IPv6 trust subnet

CVSS 3.1
9.1Critical

Official description

proxy-addr is a Node.js module that determines a request's client address behind trusted reverse proxies, and it backs Express req.ip and req.ips. In versions 1.1.0 through 2.0.7, a trust subnet written in IPv4-mapped IPv6 notation with an IPv4-sized prefix, such as ::ffff:10.0.0.0/8 instead of the correct ::ffff:10.0.0.0/104, is accepted without error but trusts every IPv4 address on the internet rather than the block it names. Because the socket peer then becomes trusted at hop 0, any unauthenticated client can supply an arbitrary X-Forwarded-For header and control the address the application reads, which defeats IP-based access control, rate limiting, geolocation, and audit logging. This is a fail-open regression introduced in version 1.1.0. The issue is fixed in proxy-addr 2.0.8, and users should upgrade to 2.0.8 or later. As a workaround, ensure any IPv4-mapped IPv6 trust subnet uses a prefix length of at least 97, or express the range in plain IPv4 notation.

CVSS scores

ScoreVersionSourceVector
9.1Critical 3.1 CVEProject cvelistV5 (CNA) (openjs) CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N

Affected products

VendorProductVersionsSource
proxy-addr proxy-addr 1.1.0 ≤ v < 2.0.8 CVEProject cvelistV5 (CNA)

References and advisories

2
Kolun on Telegram @kolunsec Exploited CVEs, key news and a daily digest Alerts for this product's next CVEsFollow the product to get new vulnerabilities on Telegram.

Details

Published
2026-09-15
Last updated
2026-09-15
State
Published
Assigner (CNA)
openjs

Exploit prediction (EPSS)

0.26%
Probability of exploitation in 30 days
17.7%
Percentile (among all CVEs)

SSVC assessment (CISA)

Automatable
No
Exploitation
None
Technical impact
Total

Weaknesses (CWE)

  • CWE-290
    Authentication Bypass by Spoofing
  • CWE-348
    Use of Less Trusted Source
  • CWE-697
    Incorrect Comparison