← Back to overview

A security vulnerability exists in the Node.js proxy-addr module (versions 1.1.0 through 2.0.7) that backs Express req.ip and req.ips. When a trust subnet is written in IPv4-mapped IPv6 notation with an IPv4-sized prefix (e.g., ::ffff:10.0.0.0/8 instead of ::ffff:10.0.0.0/104), the module silently accepts it but incorrectly trusts every IPv4 address on the internet. This fail-open regression allows any unauthenticated client to supply an arbitrary X-Forwarded-For header and spoof their apparent IP address. The impact includes bypassing IP-based access control, rate limiting, geolocation, and audit logging. The vulnerability was introduced in version 1.1.0 and is fixed in proxy-addr 2.0.8. Users should upgrade immediately. As a workaround, ensure IPv4-mapped IPv6 trust subnets use a prefix length of at least 97, or use plain IPv4 notation instead.

Affected products

  • Express.js
  • Node.js
  • proxy-addr

Related CVE's

  • CVE-2026-90711

Categories

  • Identity & Access
  • Network Infrastructure
  • Supply Chain & Dependencies
  • Web Technologies