CVE-2026-101911
ŚrednieCVSS 6.3Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 21 - wyżej niż 21% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Ryzyko polega na możliwości wywołania awarii usługi (DoS) przez atakującego, jeśli aplikacja przetwarza bardzo duże dane wejściowe bez ograniczeń długości, co może prowadzić do zawieszenia, wysokiego zużycia pamięci lub zakończenia procesu.
Rekomendacja
Zaleca się natychmiastową aktualizację biblioteki ip-address do wersji 10.7.1 lub nowszej oraz wprowadzenie limitów długości pól wejściowych przed przekazaniem ich do parsowania Address6.
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-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.7.1, the Address6 constructor, Address6.isValid, and parse code in src/ipv6.ts accept unbounded strings and expand invalid characters through RE_BAD_CHARACTERS into large diagnostics. Material impact occurs only when an application accepts a very large attacker-controlled field and passes it to Address6 parsing without an earlier length bound. Common URL and header limits, and common body-parser defaults, generally constrain the effect; common defaults typically exclude 32 MiB fields. Megabyte-scale fields can cause a synchronous stall and high transient memory use, approximately 16 MiB can trigger an invalid string length exception, and process termination occurs at approximately 32 MiB. The affected entry points include Address6.isValid and construction paths that reach parse. This issue is fixed in version 10.7.1.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

