zstd-jni versions 1.5.5-6 through 1.5.7-13 contain an out-of-bounds read vulnerability in Zstd.getFrameContentSize that fails to validate negative srcPosition arguments. Attackers can supply negative offset values that bypass bounds checks and reach the native frame-header parser, causing out-of-bounds memory reads that lead to information disclosure or JVM crashes.
{
"cna_assigner": "VulnCheck",
"cwe_ids": [
"CWE-125"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/89xxx/CVE-2026-89046.json"
}{
"extracted_events": [
{
"range": [
{
"introduced": "1.5.5-6"
},
{
"fixed": "1.5.7-14"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"fixed": "dd08685ef913a32e76fb27f43470035c06758646"
}
],
"source": "REFERENCES_COMMIT"
},
{
"original_tag": "v1.5.7-14",
"range": [
{
"fixed": "3216860eea289fbbae0b191c0a4fd8b72dad949c"
}
],
"source": "REFERENCES_TAG"
}
]
}
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2026-89046.json"
[
{
"deprecated": false,
"digest": {
"function_hash": "163176608967625549994170912083350052708",
"length": 1247
},
"id": "CVE-2026-89046-0e6351b1",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/dd08685ef913a32e76fb27f43470035c06758646",
"target": {
"file": "src/main/java/com/github/luben/zstd/ZstdInputStreamNoFinalizer.java",
"function": "readInternal"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"275344359314977493472007285396485056640",
"316115599886286568013794359884890253216",
"328365001249078288697268689154984735391",
"77109289481455660233837093926009184496",
"281158973307557163285491085635681886556",
"196666546266696328670111300416738615163",
"282190412522647678512867538625156258374",
"77109289481455660233837093926009184496"
],
"threshold": 0.9
},
"id": "CVE-2026-89046-11373d9d",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/dd08685ef913a32e76fb27f43470035c06758646",
"target": {
"file": "src/main/java/com/github/luben/zstd/ZstdInputStreamNoFinalizer.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "319696483832917712384682231278816072707",
"length": 525
},
"id": "CVE-2026-89046-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": {
"function_hash": "155532999205049707381413023812283718478",
"length": 393
},
"id": "CVE-2026-89046-457fa880",
"signature_type": "Function",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/dd08685ef913a32e76fb27f43470035c06758646",
"target": {
"file": "src/main/java/com/github/luben/zstd/ZstdInputStreamNoFinalizer.java",
"function": "read"
}
},
{
"deprecated": false,
"digest": {
"line_hashes": [
"242983979289756636978174893894911169283",
"157823411836278810979700492519583258858",
"47982388172284482667079231190836641912",
"142002538935986523140505977783435642687",
"70654406038950244899492554068964697791",
"256841266079176367404669460587415964017",
"136130365917502750732790875301653462261",
"307914870517560413069750160813139035083",
"70654406038950244899492554068964697791",
"256841266079176367404669460587415964017",
"136130365917502750732790875301653462261",
"307914870517560413069750160813139035083"
],
"threshold": 0.9
},
"id": "CVE-2026-89046-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": {
"line_hashes": [
"25964609007207720573219828689431886815",
"267179681871520588723005531219984946856",
"6472292023347682294147855619261434597",
"244873686192727136384730960862444043219",
"202915855663704198324274501629805830116",
"149564327435357576627198027098710263601",
"334033398233812454627262090002625548035"
],
"threshold": 0.9
},
"id": "CVE-2026-89046-e37dfadc",
"signature_type": "Line",
"signature_version": "v1",
"source": "https://github.com/luben/zstd-jni/commit/dd08685ef913a32e76fb27f43470035c06758646",
"target": {
"file": "src/main/java/com/github/luben/zstd/Zstd.java"
}
},
{
"deprecated": false,
"digest": {
"function_hash": "6130561471615133004258603361745015963",
"length": 503
},
"id": "CVE-2026-89046-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-89046-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-10-15T13:33:23Z"