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_version": "4.08.1-8",
"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"
}
]
}{
"binaries": [
{
"binary_version": "4.13.1-3ubuntu1",
"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"
}
]
}{
"binaries": [
{
"binary_version": "4.14.1-1ubuntu1",
"binary_name": "libstdlib-ocaml"
},
{
"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"
}
]
}{
"binaries": [
{
"binary_version": "5.3.0-3",
"binary_name": "libstdlib-ocaml"
},
{
"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"
}
]
}{
"binaries": [
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "libstdlib-ocaml"
},
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "ocaml"
},
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "ocaml-base"
},
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "ocaml-interp"
},
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "ocaml-man"
},
{
"binary_version": "5.4.0-3ubuntu1",
"binary_name": "ocaml-source"
}
]
}{
"binaries": [
{
"binary_version": "4.01.0-3ubuntu3.1+esm1",
"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"
}
]
}{
"binaries": [
{
"binary_version": "4.02.3-5ubuntu2+esm1",
"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"
}
]
}{
"binaries": [
{
"binary_version": "4.05.0-10ubuntu1+esm1",
"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"
}
]
}