BentoML deserialization vulnerability
The advisory, in context
A deserialization vulnerability exists in BentoML's runner server in bentoml/bentoml versions <=1.3.4.post1. By setting specific parameters, an attacker can execute unauthorized arbitrary code on the server, causing severe harm. The vulnerability is triggered when the args-number parameter is greater than 1, leading to automatic deserialization and arbitrary code execution.
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 through 1.4.5 (inclusive)
No fix recorded for this interval.
185 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.10, 1.2.11, 1.2.12, 1.2.13, 1.2.14, 1.2.15, 1.2.16, 1.2.17, 1.2.18, 1.2.19, 1.2.1a1, 1.2.2, 1.2.20, 1.2.3, 1.2.4, 1.2.5, 1.2.6, 1.2.7, 1.2.8, 1.2.9, 1.3.0, 1.3.0a1, 1.3.0a2, 1.3.0a3, 1.3.1, 1.3.10, 1.3.11, 1.3.12, 1.3.13, 1.3.14, 1.3.15, 1.3.16, 1.3.17, 1.3.18, 1.3.19, 1.3.2, 1.3.20, 1.3.21, 1.3.22, 1.3.3, 1.3.4.post1, 1.3.5, 1.3.6, 1.3.7, 1.3.8, 1.3.9, 1.4.0, 1.4.0a1, 1.4.0a2, 1.4.1, 1.4.2, 1.4.3, 1.4.4, 1.4.5
View affected-version evidence
{
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"last_affected": "1.4.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.10",
"1.2.11",
"1.2.12",
"1.2.13",
"1.2.14",
"1.2.15",
"1.2.16",
"1.2.17",
"1.2.18",
"1.2.19",
"1.2.1a1",
"1.2.2",
"1.2.20",
"1.2.3",
"1.2.4",
"1.2.5",
"1.2.6",
"1.2.7",
"1.2.8",
"1.2.9",
"1.3.0",
"1.3.0a1",
"1.3.0a2",
"1.3.0a3",
"1.3.1",
"1.3.10",
"1.3.11",
"1.3.12",
"1.3.13",
"1.3.14",
"1.3.15",
"1.3.16",
"1.3.17",
"1.3.18",
"1.3.19",
"1.3.2",
"1.3.20",
"1.3.21",
"1.3.22",
"1.3.3",
"1.3.4.post1",
"1.3.5",
"1.3.6",
"1.3.7",
"1.3.8",
"1.3.9",
"1.4.0",
"1.4.0a1",
"1.4.0a2",
"1.4.1",
"1.4.2",
"1.4.3",
"1.4.4",
"1.4.5"
]
}References
- https://nvd.nist.gov/vuln/detail/CVE-2024-9070
- https://github.com/bentoml/BentoML
- https://github.com/bentoml/BentoML/blob/a6f5f937be6ec278f3d4f3bbc6f3c8f9564820d7/src/bentoml/_internal/server/runner_app.py#L297
- https://github.com/bentoml/BentoML/blob/v1.4.5/src/bentoml/_internal/server/runner_app.py#L301
- https://github.com/pypa/advisory-database/tree/main/vulns/bentoml/PYSEC-2026-295.yaml
- https://huntr.com/bounties/7be6fc22-be18-44ee-a001-ac7158d5e1a5
- https://pypi.org/project/bentoml