{"id":"CVE-2024-3955","aliases":["EUVD-2024-1411","GHSA-4f92-w438-f484","PYSEC-2026-308"],"status":"published","title":"Arbitrary code execution in CraftBeerPi 4","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing to execute arbitrary code.This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).","severity":{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"adp","from":"cve"},"epss":{"day":"2026-11-11","score":0.01149,"percentile":0.67262,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":false,"fix_available":true},"cwes":["CWE-94"],"published":"2024-05-02T09:43:51Z","modified":"2026-10-27T16:30:06Z","fixes":[{"ecosystem":"PyPI","package":"cbpi4","fixed_in":["4.4.1.a1"],"sources":["ghsa","osv"]}],"affected":[{"source":"ghsa","ecosystem":"PyPI","package":"cbpi4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0.58"},{"fixed":"4.4.1.a1"}]}]},{"source":"osv","ecosystem":"PyPI","package":"cbpi4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0.58"},{"fixed":"4.4.1.a1"}]}],"versions":["4.0.5","4.0.5a13","4.0.5a14","4.0.5a15","4.0.5a16","4.0.6","4.0.7","4.0.7rc1","4.0.7rc3","4.1.0","4.1.0a2","4.1.0a3","4.1.0rc1","4.1.0rc2","4.1.0rc5","4.1.0rc8","4.1.10","4.1.10rc2","4.1.11","4.1.2","4.1.6","4.1.7","4.1.7rc1","4.2.0","4.2.0a6","4.2.0rc1","4.3.0","4.3.1","4.3.2","4.4.0"]},{"source":"osv","ecosystem":"PyPI","package":"cbpi4","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.0.0.58"},{"fixed":"4.4.1.a1"}]}],"versions":["4.0.5","4.0.5a13","4.0.5a14","4.0.5a15","4.0.5a16","4.0.6","4.0.7","4.0.7rc1","4.0.7rc3","4.1.0","4.1.0a2","4.1.0a3","4.1.0rc1","4.1.0rc2","4.1.0rc5","4.1.0rc8","4.1.10","4.1.10rc2","4.1.11","4.1.2","4.1.6","4.1.7","4.1.7rc1","4.2.0","4.2.0a6","4.2.0rc1","4.3.0","4.3.1","4.3.2","4.4.0"]}],"products":[{"vendor":"craftbeerpi - brewing controller","product":"craftbeerpi 4"},{"vendor":"pibrewing","product":"craftbeerpi 4"}],"references":[{"url":"https://cert.pl/en/posts/2024/05/CVE-2024-3955/","tags":["third-party-advisory","x_transferred"]},{"url":"https://cert.pl/posts/2024/05/CVE-2024-3955/","tags":["third-party-advisory","x_transferred"]},{"url":"https://github.com/PiBrewing/craftbeerpi4/issues/132","tags":["issue-tracking","x_transferred","web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2024-3955","tags":["advisory"]},{"url":"https://cert.pl/en/posts/2024/05/CVE-2024-3955","tags":["web"]},{"url":"https://cert.pl/posts/2024/05/CVE-2024-3955","tags":["web"]},{"url":"https://github.com/pypa/advisory-database/tree/main/vulns/cbpi4/PYSEC-2026-308.yaml","tags":["web"]},{"url":"https://pypi.org/project/cbpi4","tags":["web","package"]},{"url":"https://github.com/advisories/GHSA-4f92-w438-f484","tags":["advisory"]},{"url":"https://github.com/PiBrewing/craftbeerpi4","tags":["package"]}],"sources":{"cve":[{"id":"CVE-2024-3955","title":"Arbitrary code execution in CraftBeerPi 4","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing to execute arbitrary code.This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).\n\n","status":"published","published":"2024-05-02T09:43:51.941Z","modified":"2024-08-01T20:26:57.228Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"adp"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:34:10.613319Z"}],"euvd":[{"id":"EUVD-2024-1411","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing to execute arbitrary code.This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).\n\n","status":"published","published":"2024-05-02T09:43:51Z","modified":"2024-08-01T20:26:57Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-03T03:50:37.919987Z"}],"ghsa":[{"id":"GHSA-4f92-w438-f484","title":"CraftBeerPi 4 allows arbitrary code execution","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing arbitrary code execution. This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).","status":"published","published":"2024-05-02T12:30:40Z","modified":"2026-10-27T16:20:49Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:41:37.912288Z"}],"nvd":[{"id":"CVE-2024-3955","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing to execute arbitrary code.This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).\n\n","status":"published","published":"2024-05-02T10:15:08.63Z","modified":"2026-06-17T07:45:32.74Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical","assessor":"secondary"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T14:09:56.122111Z"}],"osv":[{"id":"GHSA-4f92-w438-f484","title":"CraftBeerPi 4 allows arbitrary code execution","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing arbitrary code execution. This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).","status":"published","published":"2024-05-02T12:30:40Z","modified":"2026-10-27T16:30:06.791472908Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-94"],"updated_at":"2026-11-02T15:46:36.782754Z"},{"id":"PYSEC-2026-308","title":"CraftBeerPi 4 allows arbitrary code execution","description":"URL GET parameter \"logtime\" utilized within the \"downloadlog\" function from \"cbpi/http_endpoints/http_system.py\" is subsequently passed to the \"os.system\" function in \"cbpi/controller/system_controller.py\" without prior validation allowing arbitrary code execution. This issue affects CraftBeerPi 4: from 4.0.0.58 (commit 563fae9) before 4.4.1.a1 (commit 57572c7).\n\n","status":"published","published":"2026-06-29T11:50:40.064038Z","modified":"2026-07-01T20:22:50.205186Z","cvss":[{"version":"3.1","score":9.8,"vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:52:56.429374Z"}]}}
