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.
{
"binaries": [
{
"binary_name": "ocaml",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-man",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.08.1-8"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.08.1-8"
}
]
}{
"binaries": [
{
"binary_name": "ocaml",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-man",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.13.1-3ubuntu1"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.13.1-3ubuntu1"
}
]
}{
"binaries": [
{
"binary_name": "libcompiler-libs-ocaml-dev",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "libstdlib-ocaml",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "libstdlib-ocaml-dev",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-man",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.14.1-1ubuntu1"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.14.1-1ubuntu1"
}
]
}{
"binaries": [
{
"binary_name": "libcompiler-libs-ocaml-dev",
"binary_version": "5.3.0-3"
},
{
"binary_name": "libstdlib-ocaml",
"binary_version": "5.3.0-3"
},
{
"binary_name": "libstdlib-ocaml-dev",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-base",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-interp",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-man",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-nox",
"binary_version": "5.3.0-3"
},
{
"binary_name": "ocaml-source",
"binary_version": "5.3.0-3"
}
]
}{
"binaries": [
{
"binary_name": "camlp4",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "camlp4-extra",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-mode",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-native-compilers",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.01.0-3ubuntu3.1+esm1"
}
]
}{
"binaries": [
{
"binary_name": "ocaml",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-mode",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-native-compilers",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.02.3-5ubuntu2+esm1"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.02.3-5ubuntu2+esm1"
}
]
}{
"binaries": [
{
"binary_name": "ocaml",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-base",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-base-nox",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-compiler-libs",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-interp",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-mode",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-nox",
"binary_version": "4.05.0-10ubuntu1+esm1"
},
{
"binary_name": "ocaml-source",
"binary_version": "4.05.0-10ubuntu1+esm1"
}
]
}