CVE-2026-47065
KrytyczneCVSS 9.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 37 — wyżej niż 37% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece ZDRES-232 i ZDRES-233 umożliwia ominięcie filtru akceptowanych klas poprzez użycie java.lang.reflect.Proxy oraz wywołanie inicjalizatora statycznego dozwolonej klasy przed utworzeniem instancji. Atakujący może zdalnie wykonać kod lub wywołać niepożądane efekty uboczne.
Ocena ryzyka
Ryzyko polega na możliwości ominięcia mechanizmów bezpieczeństwa deserializacji, co może prowadzić do zdalnego wykonania kodu (RCE) lub niekontrolowanego uruchomienia inicjalizatorów statycznych, potencjalnie destabilizujących system.
Rekomendacja
Należy natychmiast zaktualizować bibliotekę do wersji, w której obie podatności zostały załatane. Jeśli aktualizacja nie jest możliwa, tymczasowo wyłącz deserializację niezaufanych danych lub zastosuj dodatkowe filtry.
Oryginalny opis (angielski, źródło NVD)
ZDRES-232: resolveProxyClass Not Overridden - acceptMatchers Filter Bypass via java.lang.reflect.Proxy Assessment: Fully addressed. When the serialised stream contains a TC_PROXYCLASSDESC (the marker for a java.lang.reflect.Proxy ), JDK’s ObjectInputStream.readProxyDesc() is dispatched. JDK then calls the default ObjectInputStream.resolveProxyClass(interfaces) implementation, which performs Class.forName(intf, false, latestUserDefinedLoader()) for EACH interface name and constructs the proxy class — bypassing the accepted classes list . ZDRES-233: Class.forName(name, initialize=true, classLoader) in readClassDescriptor Triggers Static Initialiser of Allow-Listed Classes Assessment: Fully addressed. For ANY class on the allow-list, deserialising a stream that names it triggers the class’s (static initialiser) BEFORE any instance is constructed. This means an attacker who supplies a class name on the allow-list (e.g., the developer wrote accept(“com.myapp.*") , attacker supplies com.myapp.SomeClass ) causes <clinit> of SomeClass — and many real-world classes have side-effecting static initialisers Both issues have been fixed.

