Katalog CVE

CVE-2026-90711

KrytyczneCVSS 9.1
Opublikowano: Przetłumaczono: NVD NIST

Streszczenie

proxy-addr to moduł Node.js określający adres klienta za zaufanymi odwrotnymi proxy, używany przez Express req.ip i req.ips. W wersjach 1.1.0 do 2.0.7 podsieć zaufania zapisana w notacji IPv4-mapped IPv6 z prefiksem rozmiaru IPv4, np. ::ffff:10.0.0.0/8 zamiast ::ffff:10.0.0.0/104, jest akceptowana bez błędu, ale ufa wszystkim adresom IPv4 w internecie. Ponieważ socket peer staje się zaufany na hop 0, każdy nieuwierzytelniony klient może dostarczyć dowolny nagłówek X-Forwarded-For i kontrolować adres odczytywany przez aplikację.

Ocena ryzyka

Atakujący może fałszować adres IP klienta, omijając kontrolę dostępu opartą na IP, limity szybkości, geolokalizację i logi audytowe. Może to prowadzić do nieautoryzowanego dostępu i obejścia zabezpieczeń.

Rekomendacja

Należy zaktualizować proxy-addr do wersji 2.0.8 lub nowszej. Jako obejście, należy upewnić się, że podsieci zaufania IPv4-mapped IPv6 używają prefiksu co najmniej 97 lub zapisać zakres w notacji IPv4.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS