CVE-2026-69192
WysokieCVSS 7.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
ip-address to biblioteka JavaScript do parsowania i manipulacji adresami IPv4 i IPv6. Przed wersją 10.3.1, Address4 akceptuje oktet z wiodącym zerem i dekoduje go jako dziesiętny, podczas gdy WHATWG URL host parser, inet_aton i getaddrinfo dekodują wiodące zero jako ósemkowy. Powoduje to niezgodność między biblioteką a stosem sieciowym co do tego, który host nazywa dany string. Na przykład new Address4('012.0.0.1') zgłasza correctForm() jako 12.0.0.1 i isPrivate() jako false, ale fetch('http://012.0.0.1/') łączy się z 10.0.0.1.
Ocena ryzyka
Aplikacja budująca decyzje o granicach zaufania sieci na podstawie tych kontroli, np. filtr blokujący SSRF, może sklasyfikować wewnętrzny cel jako zewnętrzny i zezwolić na żądanie, co prowadzi do potencjalnego wycieku danych lub nieautoryzowanego dostępu.
Rekomendacja
Zaleca się aktualizację do wersji 10.3.1, która zawiera poprawkę.
Inne podatności w ip-address
Zobacz wszystkie- CVE-2026-101913Średnie
ip-address to biblioteka do parsowania i manipulowania adresami IPv4 i IPv6 w JavaScript. Przed wersją 10.5.1 metoda Address6 isLinkLocal w src/ipv6.ts rozpoznaje tylko fe80::/64 zamiast pełnego zakresu link-local fe80::/10. Adres kontrolowany przez atakującego w pozostałej części fe80::/10 może zatem przejść kontrolę granicy zaufania opartą na isLinkLocal. Ten sam adres jest identyfikowany jako link-local przez getType i getScope, co ujawnia niespójną klasyfikację. Udane obejście może dotrzeć do hosta w sieci lokalnej poza zamierzoną granicą zaufania. Problem został naprawiony w wersji 10.5.1.
- CVE-2026-101912Średnie
ip-address to biblioteka do parsowania i manipulowania adresami IPv4 i IPv6 w JavaScript. Przed wersją 10.7.1 metody isInSubnet i isHostInSubnet w src/common.ts porównują maskowane binarne ciągi bez walidacji, czy oba operandy używają tej samej rodziny IP. Kontrola zawierania między rodzinami, której wiodące bity adresu są zgodne, powoduje, że maskowane ciągi są równe, mimo że IPv4 i IPv6 nie współdzielą przestrzeni adresowej. Decyzja na liście dozwolonych lub zablokowanych może zatem sklasyfikować adres spoza zamierzonego zakresu jako zawarty. Problem został naprawiony w wersji 10.7.1.
- CVE-2026-101911Średnie
Biblioteka ip-address przed wersją 10.7.1 akceptuje nieograniczone ciągi znaków w konstruktorze Address6, metodzie Address6.isValid i kodzie parsowania w src/ipv6.ts, rozszerzając nieprawidłowe znaki przez RE_BAD_CHARACTERS do dużych diagnostyk. Wpływ materialny występuje tylko wtedy, gdy aplikacja przyjmuje bardzo duże pole kontrolowane przez atakującego i przekazuje je do parsowania Address6 bez wcześniejszego ograniczenia długości. Typowe limity URL, nagłówków i domyślne ustawienia body-parsera zwykle ograniczają efekt; pola o rozmiarze megabajtów mogą powodować zablokowanie i wysokie przejściowe użycie pamięci, około 16 MiB może wywołać wyjątek nieprawidłowej długości ciągu, a zakończenie procesu następuje przy około 32 MiB.
- CVE-2026-101910Średnie
W bibliotece ip-address od wersji 10.2.0 do 10.5.1 klasyfikator Address6 isPrivate w src/ipv6.ts nie rozpoznaje zakresu lokalnego NAT64 64:ff9b:1::/48. Aplikacje łączące isPrivate, isLoopback i isLinkLocal do podejmowania decyzji o granicy zaufania mogą traktować wewnętrzny adres IPv4 zakodowany przez ten zakres jako zewnętrzny. Eksploatacja zależy od sieci serwera używającej prefiksu NAT64 wybranego przez operatora w zakresie lokalnym.
- CVE-2026-69198Średnie
Biblioteka ip-address dla JavaScript w wersjach od 10.1.1 do 10.2.2 zawiera podatność, w której metody klasyfikacji specjalnego przeznaczenia (isLoopback, isPrivate, isLinkLocal, isCGNAT, isMulticast, isUnspecified, isBroadcast, isULA, getType) opierają się na isInSubnet, który zwraca false, gdy maska podsieci adresu jest krótsza niż maska zakresu referencyjnego. Dodanie sufiksu CIDR, takiego jak /0, powoduje, że wszystkie te metody zgłaszają wewnętrzny adres jako nieistotny, podczas gdy correctForm() i address nadal zwracają rzeczywisty wewnętrzny cel. Aplikacje używające tych sprawdzeń do decyzji o zaufaniu sieciowym, np. filtry SSRF, mogą traktować wewnętrzny cel jako zewnętrzny i zezwolić na żądanie. Problem został naprawiony w wersji 10.2.2.
- CVE-2026-54272Średnie
Biblioteka ip-address w JavaScript w wersjach 10.1.1 do 10.2.0 jest podatna na SSRF poprzez błędną klasyfikację adresów IPv4-mapped/NAT64 IPv6. Adresy te są błędnie klasyfikowane jako Global unicast, co omija sprawdzenia isLoopback, isUnspecified, isMulticast, isLinkLocal i isULA. Dla adresów IPv4-mapped jest to osiągalne na każdym hoście z podwójnym stosem, a dla NAT64 wymaga bramy NAT64/DNS64.
- CVE-2026-42338Średnie
Biblioteka ip-address przed wersją 10.1.1 nie koduje HTML-em treści kontrolowanej przez atakującego przed osadzeniem jej w zwracanych stringach HTML. Aplikacja przekazująca niezaufane dane do Address6 i renderująca wyniki jako HTML jest podatna na cross-site scripting.
Oryginalny opis (angielski, źródło NVD)
ip-address is a library for parsing and manipulating IPv4 and IPv6 addresses in JavaScript. Prior to 10.3.1, Address4 accepts an octet written with a leading zero and decodes it as decimal, while the WHATWG URL host parser, inet_aton, and getaddrinfo all decode a leading zero as octal. The library and the network stack therefore disagree about which host a string names. new Address4('012.0.0.1') reports correctForm() of 12.0.0.1 and isPrivate() of false, but fetch('http://012.0.0.1/') connects to 10.0.0.1. An application that builds a network trust-boundary decision on these checks, for example a filter intended to block Server-Side Request Forgery, or SSRF, will classify an internal target as external and allow the request. The defect is in the parse gate rather than in any one classifier, so every consumer of Address4 inherits it: isPrivate(), isLoopback(), isLinkLocal(), isCGNAT(), isInSubnet(), isHostInSubnet(), and correctForm() are all computed from the mis-decoded octets. This issue is fixed in version 10.3.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

