zstd-jni before 1.5.7-14 performs 32-bit signed bounds checks on three direct-ByteBuffer frame-size native methods, allowing out-of-bounds memory reads via negative or overflowing offsets. Attackers can supply negative offset values near Integer.MIN_VALUE to read unmapped memory, causing JVM termination or extracting arbitrary frame size data from unintended memory locations.
{
"cna_assigner": "VulnCheck",
"cwe_ids": [
"CWE-190"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/87xxx/CVE-2026-87823.json"
}"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-87823.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "319696483832917712384682231278816072707",
"length": 525
},
"id": "CVE-2026-87823-44dbbae1",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/3216860eea289fbbae0b191c0a4fd8b72dad949c",
"target": {
"file": "src/main/native/jni_zstd.c",
"function": "Java_com_github_luben_zstd_Zstd_getDirectByteBufferFrameContentSize"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"242983979289756636978174893894911169283",
"157823411836278810979700492519583258858",
"47982388172284482667079231190836641912",
"142002538935986523140505977783435642687",
"70654406038950244899492554068964697791",
"256841266079176367404669460587415964017",
"136130365917502750732790875301653462261",
"307914870517560413069750160813139035083",
"70654406038950244899492554068964697791",
"256841266079176367404669460587415964017",
"136130365917502750732790875301653462261",
"307914870517560413069750160813139035083"
],
"threshold": 0.9
},
"id": "CVE-2026-87823-cf1cd55a",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/3216860eea289fbbae0b191c0a4fd8b72dad949c",
"target": {
"file": "src/main/native/jni_zstd.c"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "6130561471615133004258603361745015963",
"length": 503
},
"id": "CVE-2026-87823-e402cad3",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/3216860eea289fbbae0b191c0a4fd8b72dad949c",
"target": {
"file": "src/main/native/jni_zstd.c",
"function": "Java_com_github_luben_zstd_Zstd_findDirectByteBufferFrameCompressedSize"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "243452810049814927721413726162029308560",
"length": 552
},
"id": "CVE-2026-87823-e43e017d",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/3216860eea289fbbae0b191c0a4fd8b72dad949c",
"target": {
"file": "src/main/native/jni_zstd.c",
"function": "Java_com_github_luben_zstd_Zstd_decompressedDirectByteBufferSize"
}
}
]
"2026-09-10T08:16:10Z"