CVE-2026-54272
ŚrednieCVSS 6.9Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 28 - wyżej niż 28% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Organizacja ryzykuje atakami SSRF, które mogą pozwolić atakującemu na dostęp do wewnętrznych zasobów sieciowych, omijając zabezpieczenia.
Rekomendacja
Zaleca się aktualizację biblioteki ip-address do wersji 10.2.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-69192Wysokie
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.
- 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. Versions 10.1.1 through 10.2.0 are vulnerable to SSRF through misclassification of IPv4-mapped/NAT64 IPv6 addresses. Address6.getType() classifies an address by matching it against a table of known IPv6 special-use prefixes, returning Global unicast when nothing matches. That table had no entry for the IPv4-mapped range (::ffff:0:0/96), so every mapped address fell through to Global unicast; NAT64 addresses matched their own NAT64 … labels. The boolean checks isLoopback, isUnspecified, and isMulticast compared getType() against a fixed label and so returned false, while isLinkLocal and isULA checked only the native IPv6 ranges. The library already exposed isMapped4() and to4(), but did not apply them inside these checks, so a mapped or NAT64 address was never normalized to its embedded IPv4 address before classification. For IPv4-mapped addresses the host OS routes to the IPv4 stack, so the misclassification is reachable on any dual-stack host. For NAT64, the classification bypass is unconditional but end-to-end reachability additionally requires a NAT64/DNS64 gateway in the deployment network.This issue has been fixed in version 10.2.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

