CVE-2026-110259
ŚrednieCVSS 5.5Streszczenie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność niekontrolowanej rekurencji w metodzie ClassWriter.replaceAsmInstructions(), która pozwala atakującym wywołać odmowę usługi poprzez spreparowane pliki klas. Atakujący może dostarczyć klasę z dużą metodą zawierającą wiele długich skoków do przodu, co wywołuje nieograniczoną rekurencję w toByteArray() i błąd StackOverflowError podczas transformacji.
Ocena ryzyka
Atakujący może zdalnie doprowadzić do przepełnienia stosu i awarii aplikacji przetwarzającej niezaufane pliki klas, powodując odmowę usługi (DoS). Może to zakłócić działanie krytycznych usług opartych na JVM.
Rekomendacja
Zaktualizuj bibliotekę OW2 ASM do wersji 9.11 lub nowszej. Jeśli aktualizacja nie jest możliwa, ogranicz przetwarzanie niezaufanych plików klas lub zwiększ rozmiar stosu wątku jako środek tymczasowy.
Inne podatności w OW2 ASM
Zobacz wszystkie- CVE-2026-110591Średnie
OW2 ASM w wersjach od 1.4.3 do 9.11 zawiera podatność nadmiernego zużycia zasobów w funkcji Analyzer.analyze(), która pozwala atakującemu wyczerpać pamięć i CPU za pomocą spreparowanych plików klas. Atakujący może dostarczyć pliki klas analizowane przez BasicVerifier, SimpleVerifier lub SourceInterpreter, aby wywołać nieograniczoną alokację Frame na instrukcję i iteracje punktu stałego, powodując odmowę usługi.
- CVE-2026-110270Średnie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność niekontrolowanej alokacji pamięci w asm-commons JSRInlinerAdapter, który wstawia podprogramy JSR/RET bez limitów pamięci i pracy. Atakujący może dostarczyć spreparowany plik klas z zagnieżdżonymi podprogramami, aby wymusić alokację pamięci O(2^n) i wywołać OutOfMemoryError, który zawiesza JVM.
- CVE-2026-110263Średnie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność niekontrolowanej rekurencji w funkcji SignatureReader.parseType(), która pozwala atakującemu wyczerpać stos poprzez głęboko zagnieżdżone sygnatury typów generycznych. Atakujący może dostarczyć spreparowany plik klas z długim atrybutem Signature zawierającym wiele zagnieżdżonych argumentów typu, aby wywołać StackOverflowError podczas transformacji klas, powodując odmowę usługi.
- CVE-2026-110262Niskie
OW2 ASM 3.1 przed wersją 9.11 zawiera podatność nadmiernej alokacji pamięci w klasie AdviceAdapter z asm-commons, umożliwiającą atakującym wyczerpanie pamięci poprzez dostarczenie spreparowanych plików klas. Atakujący może stworzyć bajtkod z wieloma docelowymi skokami w konstruktorach, powodując nieograniczone kopiowanie stosu w forwardJumpStackFrames i alokację setek megabajtów, prowadząc do odmowy usługi.
- CVE-2026-110261Średnie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność typu denial of service, która pozwala atakującemu wyczerpać CPU poprzez dostarczenie spreparowanych plików klas przetwarzanych z użyciem ClassWriter.COMPUTE_FRAMES. Atakujący może przygotować metody, które powodują wolne zbieganie nieograniczonego algorytmu punktu stałego MethodWriter.computeAllFrames(), zajmując wątki transformujące na nieograniczony czas.
- CVE-2026-110260Średnie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność polegającą na kwadratowej alokacji pamięci w metodach MethodWriter.computeMaxStackAndLocal() oraz computeAllFrames() przy użyciu COMPUTE_MAXS lub COMPUTE_FRAMES. Atakujący może dostarczyć spreparowany plik klasy z tysiącami nakładających się handlerów wyjątków, co powoduje nadmierną alokację obiektów Edge i błąd OutOfMemoryError, który zawiesza JVM.
- CVE-2026-110258Średnie
OW2 ASM w wersjach od 3.0 do 9.11 zawiera podatność nadmiernej alokacji pamięci w metodzie Label.addSubroutineRetSuccessors(), która nie egzekwuje reguły pojedynczego RET na JSR. Atakujący może dostarczyć spreparowany nieprawidłowy plik klasy z wieloma instrukcjami RET dla jednego JSR, co wywołuje alokację około 2 GB i zawiesza JVM.
- CVE-2026-110257Średnie
OW2 ASM w wersjach od 5.0 do 9.11 zawiera podatność nadmiernej alokacji pamięci w metodzie ClassReader.readBootstrapMethodsAttribute(), która ustala rozmiar tablicy int na podstawie num_bootstrap_methods bez walidacji attribute_length. Atakujący może dostarczyć spreparowany plik klasy o rozmiarze około 100 bajtów, co wymusza alokację około 2 GB, powodując błąd OutOfMemoryError, który zawiesza JVM lub zużywa wątek.
Oryginalny opis (angielski, źródło NVD)
OW2 ASM 3.0 before 9.11 contains an uncontrolled recursion vulnerability in ClassWriter.replaceAsmInstructions() that allows attackers to cause denial of service through crafted class files. Attackers can supply a class with a large method containing many long forward jumps, triggering unbounded toByteArray() recursion and a StackOverflowError during transformation.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

