User Impersonation Affecting proxy-addr package, versions >=1.1.0 <2.0.8


Severity

Recommended
0.0
critical
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

EPSS
0.19% (9th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-JS-PROXYADDR-19812342
  • published15 Sept 2026
  • disclosed15 Sept 2026
  • creditkagebunsher

Introduced: 15 Sep 2026

NewCVE-2026-90711  (opens in a new tab)
CWE-290  (opens in a new tab)

How to fix?

Upgrade proxy-addr to version 2.0.8 or higher.

Overview

Affected versions of this package are vulnerable to User Impersonation in its subnet matching logic, where an IPv4-mapped IPv6 trust entry with a short prefix such as ::ffff:10.0.0.0/8 compiles with all-zero leading bits and matches every address rather than the intended block. An attacker can control the value returned by proxyaddr(req, trust), and therefore req.ip and req.ips in Express, by sending an arbitrary X-Forwarded-For header, since every client is then trusted as a proxy at hop 0, which defeats IP-based access control, rate limiting, geolocation, and audit logging. This requires the application to configure its trust list with an IPv4-mapped IPv6 subnet using a short prefix, or any IPv6 subnet with zero leading bits such as ::/1, and the misconfiguration compiles without error.

Workaround

This vulnerability can be avoided by expressing trust subnets in plain IPv4 notation, such as 10.0.0.0/8, or where IPv4-mapped IPv6 notation is required, by using a prefix long enough to cover the mapped marker, such as ::ffff:10.0.0.0/104.

CVSS Base Scores

version 4.0
version 3.1