Описание
zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative length parameters in ZstdInputStreamNoFinalizer.read(), allowing attackers to trigger infinite loops. Attackers can pass negative length values to cause the read method to spin indefinitely while holding the stream monitor, blocking all other threads from accessing the stream.
A flaw was found in zstd-jni. This vulnerability allows an attacker to trigger an infinite loop by providing negative length parameters to the ZstdInputStreamNoFinalizer.read() method. This can cause the read method to spin indefinitely, holding the stream monitor and blocking other threads from accessing the stream, ultimately leading to a Denial of Service (DoS) for the affected application.
Отчет
Red Hat rates this Moderate, consistent with upstream's own CVSS 3.1 score of 4.0, for the same reason: the negative length has to come from the calling application's own logic, not from an attacker-controlled value received directly over a wire protocol. Only the three-argument ZstdInputStreamNoFinalizer.read(byte[], int, int) overload is reachable this way; the caller has to already have a defect in its own length calculation, a bad remaining-bytes count for example, to hand zstd-jni a negative value in the first place, since InputStream's single-argument read() and read(byte[]) never produce one. Where it is reachable, the failure is a single thread spinning and holding one stream instance's lock indefinitely, not memory corruption, data exposure, or privilege escalation, and it doesn't propagate to stream instances the hung caller isn't sharing. That combination, a caller-side prerequisite plus an impact bounded to one thread and one stream object, is why this stays Moderate rather than Important despite being a straightforward-looking DoS trigger on paper.
Меры по смягчению последствий
If your integration calls read(byte[], int, int) directly with a computed length, for example a remaining-bytes calculation, add a len >= 0 check before the call. If you can't change the call site, avoid sharing a single ZstdInputStreamNoFinalizer instance across threads or requests, so a bad input only stalls the one caller that triggered it instead of every other caller waiting on the same stream.
Затронутые пакеты
| Платформа | Пакет | Состояние | Рекомендация | Релиз |
|---|---|---|---|---|
| Exploit Intelligence | exploit-intelligence/agent-client-rhel9 | Out of support scope | ||
| OpenShift Developer Tools and Services | jenkins-2-plugins | Out of support scope | ||
| OpenShift Developer Tools and Services | ocp-tools-4/jenkins-rhel8 | Out of support scope | ||
| OpenShift Developer Tools and Services | ocp-tools-4/jenkins-rhel9 | Out of support scope | ||
| Red Hat build of Apache Camel 4 for Quarkus 3 | zstd-jni | Fix deferred | ||
| Red Hat build of Apache Camel for Spring Boot 4 | zstd-jni | Fix deferred | ||
| Red Hat build of Apicurio Registry 3 | zstd-jni | Fix deferred | ||
| Red Hat build of Debezium 3 | zstd-jni | Fix deferred | ||
| Red Hat build of Quarkus | zstd-jni | Fix deferred | ||
| Red Hat Ceph Storage 9 | libarrow | Fix deferred |
Показывать по
Ссылки на источники
Дополнительная информация
Статус:
EPSS
4 Medium
CVSS3
Связанные уязвимости
(zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative l ...)
zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative length parameters in ZstdInputStreamNoFinalizer.read(), allowing attackers to trigger infinite loops. Attackers can pass negative length values to cause the read method to spin indefinitely while holding the stream monitor, blocking all other threads from accessing the stream.
zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative l ...
zstd-jni versions 1.4.8-4 through 1.5.7-13 fail to validate negative length parameters in ZstdInputStreamNoFinalizer.read(), allowing attackers to trigger infinite loops. Attackers can pass negative length values to cause the read method to spin indefinitely while holding the stream monitor, blocking all other threads from accessing the stream.
EPSS
4 Medium
CVSS3