Insecure deserialization in BentoML
The advisory, in context
An insecure deserialization vulnerability exists in the BentoML framework, allowing remote code execution (RCE) by sending a specially crafted POST request. By exploiting this vulnerability, attackers can execute arbitrary commands on the server hosting the BentoML application. The vulnerability is triggered when a serialized object, crafted to execute OS commands upon deserialization, is sent to any valid BentoML endpoint. This issue poses a significant security risk, enabling attackers to compromise the server and potentially gain unauthorized access or control.
Affected packages
Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.
Earlier releases before 1.2.5
Fixed in 1.2.5
135 explicitly affected versions
0.0.1, 0.0.2, 0.0.3, 0.0.5, 0.0.6a0, 0.0.7, 0.0.7.dev0, 0.0.8, 0.0.8.post1, 0.0.9, 0.1.1, 0.1.2, 0.10.0, 0.10.1, 0.11.0, 0.11.dev0, 0.12.0, 0.12.1, 0.13.0, 0.13.1, 0.13.2, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.3.3, 0.3.4, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.4.5, 0.4.7, 0.4.8, 0.4.9, 0.5.0, 0.5.1, 0.5.2, 0.5.3, 0.5.4, 0.5.5, 0.5.6, 0.5.7, 0.5.8, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.8.5, 0.8.6, 0.9.0, 0.9.0rc0, 0.9.1, 0.9.2, 1.0.0, 1.0.0.dev0, 1.0.0.dev1, 1.0.0a1, 1.0.0a2, 1.0.0a3, 1.0.0a4, 1.0.0a5, 1.0.0a6, 1.0.0a7, 1.0.0rc0, 1.0.0rc1, 1.0.0rc2, 1.0.0rc3, 1.0.10, 1.0.11, 1.0.12, 1.0.13, 1.0.14, 1.0.15, 1.0.16, 1.0.17, 1.0.18, 1.0.19, 1.0.2, 1.0.20, 1.0.21, 1.0.22, 1.0.23, 1.0.24, 1.0.25, 1.0.3, 1.0.4, 1.0.5, 1.0.6, 1.0.7, 1.0.8, 1.0.9, 1.1.0, 1.1.1, 1.1.10, 1.1.11, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.1.7, 1.1.8, 1.1.9, 1.2.0, 1.2.0a0, 1.2.0a1, 1.2.0a2, 1.2.0a3, 1.2.0a4, 1.2.0a5, 1.2.0a6, 1.2.0a7, 1.2.0rc1, 1.2.1, 1.2.1a1, 1.2.2, 1.2.3, 1.2.4
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "1.2.5"
}
],
"type": "ECOSYSTEM"
}
],
"versions": [
"0.0.1",
"0.0.2",
"0.0.3",
"0.0.5",
"0.0.6a0",
"0.0.7",
"0.0.7.dev0",
"0.0.8",
"0.0.8.post1",
"0.0.9",
"0.1.1",
"0.1.2",
"0.10.0",
"0.10.1",
"0.11.0",
"0.11.dev0",
"0.12.0",
"0.12.1",
"0.13.0",
"0.13.1",
"0.13.2",
"0.2.0",
"0.2.1",
"0.2.2",
"0.3.0",
"0.3.1",
"0.3.3",
"0.3.4",
"0.4.0",
"0.4.1",
"0.4.2",
"0.4.3",
"0.4.4",
"0.4.5",
"0.4.7",
"0.4.8",
"0.4.9",
"0.5.0",
"0.5.1",
"0.5.2",
"0.5.3",
"0.5.4",
"0.5.5",
"0.5.6",
"0.5.7",
"0.5.8",
"0.6.0",
"0.6.1",
"0.6.2",
"0.6.3",
"0.7.0",
"0.7.1",
"0.7.2",
"0.7.3",
"0.7.4",
"0.7.5",
"0.7.6",
"0.7.7",
"0.7.8",
"0.8.0",
"0.8.1",
"0.8.2",
"0.8.3",
"0.8.4",
"0.8.5",
"0.8.6",
"0.9.0",
"0.9.0rc0",
"0.9.1",
"0.9.2",
"1.0.0",
"1.0.0.dev0",
"1.0.0.dev1",
"1.0.0a1",
"1.0.0a2",
"1.0.0a3",
"1.0.0a4",
"1.0.0a5",
"1.0.0a6",
"1.0.0a7",
"1.0.0rc0",
"1.0.0rc1",
"1.0.0rc2",
"1.0.0rc3",
"1.0.10",
"1.0.11",
"1.0.12",
"1.0.13",
"1.0.14",
"1.0.15",
"1.0.16",
"1.0.17",
"1.0.18",
"1.0.19",
"1.0.2",
"1.0.20",
"1.0.21",
"1.0.22",
"1.0.23",
"1.0.24",
"1.0.25",
"1.0.3",
"1.0.4",
"1.0.5",
"1.0.6",
"1.0.7",
"1.0.8",
"1.0.9",
"1.1.0",
"1.1.1",
"1.1.10",
"1.1.11",
"1.1.2",
"1.1.3",
"1.1.4",
"1.1.5",
"1.1.6",
"1.1.7",
"1.1.8",
"1.1.9",
"1.2.0",
"1.2.0a0",
"1.2.0a1",
"1.2.0a2",
"1.2.0a3",
"1.2.0a4",
"1.2.0a5",
"1.2.0a6",
"1.2.0a7",
"1.2.0rc1",
"1.2.1",
"1.2.1a1",
"1.2.2",
"1.2.3",
"1.2.4"
]
}References
- https://nvd.nist.gov/vuln/detail/CVE-2024-2912
- https://github.com/bentoml/bentoml/commit/fd70379733c57c6368cc022ac1f841b7b426db7b
- https://github.com/bentoml/BentoML
- https://github.com/pypa/advisory-database/tree/main/vulns/bentoml/PYSEC-2026-296.yaml
- https://huntr.com/bounties/349a1cce-6bb5-4345-82a5-bf7041b65a68
- https://pypi.org/project/bentoml