Описание
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.1, JNI-backed XXHash implementations fail to validate the byte array object and the off and len arguments in XXHashFactory.nativeInstance().hash32().hash(), XXHashFactory.nativeInstance().hash64().hash(), XXHashFactory.nativeInstance().newStreamingHash32().update(), and XXHashFactory.nativeInstance().newStreamingHash64().update(), allowing null arrays or oversized ranges to reach native code, read outside the Java array, and fatally terminate the JVM. This issue is fixed in version 1.11.1.
A flaw was found in lz4-java. Insufficient validation of byte array arguments in its Java Native Interface (JNI)-based XXHash implementations allows an attacker to crash the Java Virtual Machine (JVM) by providing invalid input. This can lead to a denial of service, making the affected application unavailable. In some cases, this flaw could also lead to the exposure of in-process data due to out-of-bounds memory reads.
Отчет
A flaw was found in the lz4-java library's JNI-backed XXHash implementations. The native XXHash methods (hash32, hash64, streamingHash32, streamingHash64) obtained via XXHashFactory.nativeInstance() do not properly validate byte array arguments, offsets, and lengths before passing them to native code. An attacker able to control these parameters can pass null arrays or out-of-bounds ranges, causing a fatal JVM crash (denial of service) and potentially reading process memory beyond array bounds. The Java-based implementations obtained via XXHashFactory.safeInstance() or XXHashFactory.fastestJavaInstance() are not affected.
Меры по смягчению последствий
Use XXHashFactory.safeInstance() or XXHashFactory.fastestJavaInstance() instead of XXHashFactory.nativeInstance() to avoid the JNI boundary. Alternatively, validate that arrays are non-null and that offset and length parameters describe a range fully contained in the array before calling native XXHash methods.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| OpenShift Developer Tools and Services | jenkins-2-plugins | Under investigation | ||
| OpenShift Developer Tools and Services | ocp-tools-4/jenkins-rhel8 | Under investigation | ||
| OpenShift Developer Tools and Services | ocp-tools-4/jenkins-rhel9 | Under investigation | ||
| Red Hat build of Apache Camel 4 for Quarkus 3 | lz4-java | Under investigation | ||
| Red Hat build of Apache Camel for Spring Boot 4 | liblz4-java.so | Under investigation | ||
| Red Hat build of Apache Camel for Spring Boot 4 | lz4-java | Under investigation | ||
| Red Hat build of Apicurio Registry 3 | lz4-java | Under investigation | ||
| Red Hat build of Debezium 3 | lz4-java | Under investigation | ||
| Red Hat build of Quarkus | lz4-java | Affected | ||
| Red Hat Enterprise Linux 8 | jmc:rhel8/lz4-java | Under investigation |
Показывать по
Дополнительная информация
Статус:
EPSS
Связанные уязвимости
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.1, JNI-backed XXHash implementations fail to validate the byte array object and the off and len arguments in XXHashFactory.nativeInstance().hash32().hash(), XXHashFactory.nativeInstance().hash64().hash(), XXHashFactory.nativeInstance().newStreamingHash32().update(), and XXHashFactory.nativeInstance().newStreamingHash64().update(), allowing null arrays or oversized ranges to reach native code, read outside the Java array, and fatally terminate the JVM. This issue is fixed in version 1.11.1.
yawkat LZ4 Java provides LZ4 compression for Java. Prior to 1.11.1, JN ...
LZ4 Java: Native XXHash implementations can crash the JVM when passed invalid byte array ranges
EPSS