CVE-2026-101913
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 30 - wyżej niż 30% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może obejść kontrolę granicy zaufania i uzyskać dostęp do hostów w sieci lokalnej, które powinny być niedostępne, co może prowadzić do nieautoryzowanego dostępu lub ataków na wewnętrzne zasoby.
Rekomendacja
Zaleca się aktualizację biblioteki ip-address do wersji 10.5.1 lub nowszej, która zawiera poprawkę.
Inne podatności w ip-address
Zobacz wszystkie- 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-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.5.1, the Address6 isLinkLocal method in src/ipv6.ts recognizes only fe80::/64 instead of the complete fe80::/10 IPv6 link-local range. An attacker-controlled address elsewhere in fe80::/10 can therefore pass a trust-boundary check that relies on isLinkLocal. The same address is identified as link-local by getType and getScope, exposing the inconsistent classification. A successful bypass can reach an on-link host outside the intended trust boundary. This issue is fixed in version 10.5.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

