In OCaml before 4.14.3 and 5.x before 5.4.1, a buffer over-read in Marshal deserialization (runtime/intern.c) enables remote code execution through a multi-phase attack chain. The vulnerability stems from missing bounds validation in the readblock() function, which performs unbounded memcpy() operations using attacker-controlled lengths from crafted Marshal data.
{
"cna_assigner": "mitre",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/28xxx/CVE-2026-28364.json",
"unresolved_ranges": [
{
"source": "AFFECTED_FIELD",
"extracted_events": [
{
"fixed": "4.14.3"
},
{
"introduced": "5.0.0"
},
{
"fixed": "5.4.1"
}
]
},
{
"source": "CPE_FIELD",
"extracted_events": [
{
"fixed": "4.14.3"
},
{
"introduced": "5.0.0"
},
{
"fixed": "5.4.1"
}
]
},
{
"source": "DESCRIPTION",
"extracted_events": [
{
"fixed": "4.14.3"
},
{
"introduced": "5.x"
},
{
"fixed": "5.4.1"
}
]
}
],
"cwe_ids": [
"CWE-126"
]
}{
"source": "CPE_FIELD",
"cpe": "cpe:2.3:a:ocaml:ocaml:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "0"
},
{
"fixed": "4.14.3"
},
{
"introduced": "5.0.0"
},
{
"fixed": "5.4.1"
}
]
}