W wersjach OpenJDK + Eclipse OpenJ9 0.11.0 klasa NativeCrypto zawiera publiczne metody natywne akceptujące wartości wskaźników, które są następnie dereferencjonowane w kodzie natywnym bez odpowiedniej walidacji. Podatność ta umożliwia zdalnemu atakującemu bez uwierzytelnienia manipulację pamięcią procesu, co czyni ją krytycznie niebezpieczną.
▸ Pokaż oryginał (EN)
In OpenJDK + Eclipse OpenJ9 version 0.11.0 builds, the public jdk.crypto.jniprovider.NativeCrypto class contains public static natives which accept pointer values that are dereferenced in the native code.
Klasa jdk.crypto.jniprovider.NativeCrypto jest publiczna i udostępnia statyczne metody natywne (native), które przyjmują wartości traktowane jako wskaźniki (pointer values). Przekazane wartości są następnie dereferencjonowane bezpośrednio w kodzie natywnym (JNI) bez weryfikacji ich poprawności. Atakujący może dostarczyć spreparowane wartości wskaźników, co prowadzi do odczytu lub zapisu dowolnych obszarów pamięci procesu (CWE-822, CWE-119 — nieprawidłowa obsługa buforów pamięci).
Atakujący może uzyskać pełną kontrolę nad procesem JVM — możliwe jest ujawnienie poufnych danych, modyfikacja danych w pamięci oraz zdalne wykonanie kodu (RCE) w kontekście uprawnień procesu Java.
Należy zastosować patche dostępne u producenta zgodnie z referencjami (https://bugs.eclipse.org/bugs/show_bug.cgi?id=543792). Zaleca się aktualizację do wersji Eclipse OpenJ9 nowszej niż 0.11.0, w której problem został usunięty.
OpenJDK + Eclipse OpenJ9 w wersji 0.11.0
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HEclipse Openj9
APPEclipse0.11.0
Powiązane podatności
Eclipse OpenJ9: brak weryfikacji dostępu do niedostępnych metod interfejsów przez MethodHandles
Stack-based buffer overflow w Eclipse OpenJ9 przy konwersji kodowania UTF-8
Eclipse OpenJ9: brak kontroli uprawnień do operacji diagnostycznych
Eclipse OpenJ9: arbitralny zapis pamięci przez metodę String.getBytes() w JIT
Eclipse OpenJ9: błędne pominięcie null check w kompilatorze JIT