Skip to content

CVE-2026-5366 Git Argument Injection in prefecthq/prefect

CriticalCVSS 9.9 EPSS 1.0%
Published
Updated
Exploit status
No public exploit known

Description

Prefect version 3.6.23 is vulnerable to remote code execution due to improper handling of user-controlled input in the GitRepository storage class. The commit_sha parameter, which is passed to git commands, lacks validation and does not include a -- separator to distinguish user input from git flags. This allows attackers to inject arbitrary git flags, such as --upload-pack, enabling execution of external programs. Additionally, the directories parameter can be exploited to inject git flags during sparse-checkout operations. These vulnerabilities allow any user with deployment creation permissions to execute arbitrary commands on worker machines, compromising shared work pools in multi-tenant environments.

Affected products

ProductAffected versionsFixed in
pypi prefect(PyPI) >= 3.1.11, < 3.6.25 3.6.25
pypi prefect(PyPI) = 3.1.11 No fix listed
pypi prefect(PyPI) = 3.1.12 No fix listed
pypi prefect(PyPI) = 3.1.12.dev1 No fix listed
pypi prefect(PyPI) = 3.1.12.dev2 No fix listed
pypi prefect(PyPI) = 3.1.12.dev3 No fix listed
pypi prefect(PyPI) = 3.1.12.dev4 No fix listed
pypi prefect(PyPI) = 3.1.12.dev5 No fix listed
pypi prefect(PyPI) = 3.1.13 No fix listed
pypi prefect(PyPI) = 3.1.13.dev1 No fix listed
pypi prefect(PyPI) = 3.1.13.dev2 No fix listed
pypi prefect(PyPI) = 3.1.13.dev3 No fix listed
pypi prefect(PyPI) = 3.1.13.dev4 No fix listed
pypi prefect(PyPI) = 3.1.13.dev5 No fix listed
pypi prefect(PyPI) = 3.1.13.dev6 No fix listed
pypi prefect(PyPI) = 3.1.14 No fix listed
pypi prefect(PyPI) = 3.1.14.dev1 No fix listed
pypi prefect(PyPI) = 3.1.14.dev2 No fix listed
pypi prefect(PyPI) = 3.1.14.dev3 No fix listed
pypi prefect(PyPI) = 3.1.14.dev4 No fix listed
pypi prefect(PyPI) = 3.1.15 No fix listed
pypi prefect(PyPI) = 3.1.15.dev1 No fix listed
pypi prefect(PyPI) = 3.1.15.dev2 No fix listed
pypi prefect(PyPI) = 3.1.15.dev3 No fix listed
pypi prefect(PyPI) = 3.1.15.dev4 No fix listed
Show 175 more
ProductAffected versionsFixed in
pypi prefect(PyPI) = 3.1.15.dev5 No fix listed
pypi prefect(PyPI) = 3.1.15.dev6 No fix listed
pypi prefect(PyPI) = 3.1.16.dev1 No fix listed
pypi prefect(PyPI) = 3.1.16.dev2 No fix listed
pypi prefect(PyPI) = 3.1.16.dev3 No fix listed
pypi prefect(PyPI) = 3.1.16.dev4 No fix listed
pypi prefect(PyPI) = 3.1.16.dev5 No fix listed
pypi prefect(PyPI) = 3.1.16.dev6 No fix listed
pypi prefect(PyPI) = 3.1.16.dev7 No fix listed
pypi prefect(PyPI) = 3.2.0 No fix listed
pypi prefect(PyPI) = 3.2.1 No fix listed
pypi prefect(PyPI) = 3.2.10 No fix listed
pypi prefect(PyPI) = 3.2.10.dev1 No fix listed
pypi prefect(PyPI) = 3.2.10.dev2 No fix listed
pypi prefect(PyPI) = 3.2.10.dev3 No fix listed
pypi prefect(PyPI) = 3.2.10.dev4 No fix listed
pypi prefect(PyPI) = 3.2.11 No fix listed
pypi prefect(PyPI) = 3.2.12 No fix listed
pypi prefect(PyPI) = 3.2.12.dev1 No fix listed
pypi prefect(PyPI) = 3.2.12.dev2 No fix listed
pypi prefect(PyPI) = 3.2.12.dev3 No fix listed
pypi prefect(PyPI) = 3.2.12.dev4 No fix listed
pypi prefect(PyPI) = 3.2.13 No fix listed
pypi prefect(PyPI) = 3.2.13.dev2 No fix listed
pypi prefect(PyPI) = 3.2.13.dev3 No fix listed
pypi prefect(PyPI) = 3.2.13.dev4 No fix listed
pypi prefect(PyPI) = 3.2.14 No fix listed
pypi prefect(PyPI) = 3.2.14.dev1 No fix listed
pypi prefect(PyPI) = 3.2.14.dev2 No fix listed
pypi prefect(PyPI) = 3.2.14.dev3 No fix listed
pypi prefect(PyPI) = 3.2.15 No fix listed
pypi prefect(PyPI) = 3.2.15.dev1 No fix listed
pypi prefect(PyPI) = 3.2.15.dev2 No fix listed
pypi prefect(PyPI) = 3.2.15.dev3 No fix listed
pypi prefect(PyPI) = 3.2.15.dev4 No fix listed
pypi prefect(PyPI) = 3.2.15.dev5 No fix listed
pypi prefect(PyPI) = 3.2.15.dev6 No fix listed
pypi prefect(PyPI) = 3.2.15.dev7 No fix listed
pypi prefect(PyPI) = 3.2.15.dev8 No fix listed
pypi prefect(PyPI) = 3.2.15.dev9 No fix listed
pypi prefect(PyPI) = 3.2.16.dev1 No fix listed
pypi prefect(PyPI) = 3.2.2 No fix listed
pypi prefect(PyPI) = 3.2.2.dev1 No fix listed
pypi prefect(PyPI) = 3.2.2.dev2 No fix listed
pypi prefect(PyPI) = 3.2.3 No fix listed
pypi prefect(PyPI) = 3.2.4 No fix listed
pypi prefect(PyPI) = 3.2.5 No fix listed
pypi prefect(PyPI) = 3.2.6 No fix listed
pypi prefect(PyPI) = 3.2.7 No fix listed
pypi prefect(PyPI) = 3.2.7.dev1 No fix listed
pypi prefect(PyPI) = 3.2.8 No fix listed
pypi prefect(PyPI) = 3.2.8.dev1 No fix listed
pypi prefect(PyPI) = 3.2.8.dev2 No fix listed
pypi prefect(PyPI) = 3.2.8.dev3 No fix listed
pypi prefect(PyPI) = 3.2.8.dev4 No fix listed
pypi prefect(PyPI) = 3.2.9 No fix listed
pypi prefect(PyPI) = 3.3.0 No fix listed
pypi prefect(PyPI) = 3.3.1 No fix listed
pypi prefect(PyPI) = 3.3.2 No fix listed
pypi prefect(PyPI) = 3.3.2.dev1 No fix listed
pypi prefect(PyPI) = 3.3.2.dev2 No fix listed
pypi prefect(PyPI) = 3.3.3 No fix listed
pypi prefect(PyPI) = 3.3.3.dev1 No fix listed
pypi prefect(PyPI) = 3.3.4 No fix listed
pypi prefect(PyPI) = 3.3.4.dev1 No fix listed
pypi prefect(PyPI) = 3.3.4.dev2 No fix listed
pypi prefect(PyPI) = 3.3.4.dev3 No fix listed
pypi prefect(PyPI) = 3.3.5 No fix listed
pypi prefect(PyPI) = 3.3.5.dev1 No fix listed
pypi prefect(PyPI) = 3.3.5.dev2 No fix listed
pypi prefect(PyPI) = 3.3.5.dev3 No fix listed
pypi prefect(PyPI) = 3.3.5.dev4 No fix listed
pypi prefect(PyPI) = 3.3.6 No fix listed
pypi prefect(PyPI) = 3.3.6.dev1 No fix listed
pypi prefect(PyPI) = 3.3.6.dev2 No fix listed
pypi prefect(PyPI) = 3.3.6.dev3 No fix listed
pypi prefect(PyPI) = 3.3.6.dev4 No fix listed
pypi prefect(PyPI) = 3.3.7 No fix listed
pypi prefect(PyPI) = 3.3.7.dev1 No fix listed
pypi prefect(PyPI) = 3.3.8.dev1 No fix listed
pypi prefect(PyPI) = 3.3.8.dev2 No fix listed
pypi prefect(PyPI) = 3.3.8.dev3 No fix listed
pypi prefect(PyPI) = 3.3.8.dev4 No fix listed
pypi prefect(PyPI) = 3.4.0 No fix listed
pypi prefect(PyPI) = 3.4.1 No fix listed
pypi prefect(PyPI) = 3.4.1.dev1 No fix listed
pypi prefect(PyPI) = 3.4.1.dev2 No fix listed
pypi prefect(PyPI) = 3.4.1.dev3 No fix listed
pypi prefect(PyPI) = 3.4.1.dev4 No fix listed
pypi prefect(PyPI) = 3.4.1.dev5 No fix listed
pypi prefect(PyPI) = 3.4.10 No fix listed
pypi prefect(PyPI) = 3.4.10.dev1 No fix listed
pypi prefect(PyPI) = 3.4.11 No fix listed
pypi prefect(PyPI) = 3.4.11.dev1 No fix listed
pypi prefect(PyPI) = 3.4.11.dev2 No fix listed
pypi prefect(PyPI) = 3.4.11.dev3 No fix listed
pypi prefect(PyPI) = 3.4.11.dev4 No fix listed
pypi prefect(PyPI) = 3.4.11.dev5 No fix listed
pypi prefect(PyPI) = 3.4.12 No fix listed
pypi prefect(PyPI) = 3.4.12.dev1 No fix listed
pypi prefect(PyPI) = 3.4.12.dev2 No fix listed
pypi prefect(PyPI) = 3.4.12.dev3 No fix listed
pypi prefect(PyPI) = 3.4.12.dev4 No fix listed
pypi prefect(PyPI) = 3.4.13 No fix listed
pypi prefect(PyPI) = 3.4.13.dev1 No fix listed
pypi prefect(PyPI) = 3.4.13.dev2 No fix listed
pypi prefect(PyPI) = 3.4.13.dev3 No fix listed
pypi prefect(PyPI) = 3.4.14 No fix listed
pypi prefect(PyPI) = 3.4.14.dev1 No fix listed
pypi prefect(PyPI) = 3.4.14.dev2 No fix listed
pypi prefect(PyPI) = 3.4.14.dev3 No fix listed
pypi prefect(PyPI) = 3.4.14.dev4 No fix listed
pypi prefect(PyPI) = 3.4.15 No fix listed
pypi prefect(PyPI) = 3.4.15.dev1 No fix listed
pypi prefect(PyPI) = 3.4.15.dev2 No fix listed
pypi prefect(PyPI) = 3.4.15.dev3 No fix listed
pypi prefect(PyPI) = 3.4.15.dev4 No fix listed
pypi prefect(PyPI) = 3.4.16 No fix listed
pypi prefect(PyPI) = 3.4.16.dev1 No fix listed
pypi prefect(PyPI) = 3.4.16.dev2 No fix listed
pypi prefect(PyPI) = 3.4.16.dev3 No fix listed
pypi prefect(PyPI) = 3.4.16.dev4 No fix listed
pypi prefect(PyPI) = 3.4.16.dev5 No fix listed
pypi prefect(PyPI) = 3.4.16.dev6 No fix listed
pypi prefect(PyPI) = 3.4.17 No fix listed
pypi prefect(PyPI) = 3.4.18 No fix listed
pypi prefect(PyPI) = 3.4.18.dev1 No fix listed
pypi prefect(PyPI) = 3.4.18.dev2 No fix listed
pypi prefect(PyPI) = 3.4.18.dev3 No fix listed
pypi prefect(PyPI) = 3.4.18.dev4 No fix listed
pypi prefect(PyPI) = 3.4.18.dev5 No fix listed
pypi prefect(PyPI) = 3.4.19 No fix listed
pypi prefect(PyPI) = 3.4.19.dev1 No fix listed
pypi prefect(PyPI) = 3.4.19.dev2 No fix listed
pypi prefect(PyPI) = 3.4.19.dev3 No fix listed
pypi prefect(PyPI) = 3.4.19.dev4 No fix listed
pypi prefect(PyPI) = 3.4.19.dev5 No fix listed
pypi prefect(PyPI) = 3.4.2 No fix listed
pypi prefect(PyPI) = 3.4.2.dev1 No fix listed
pypi prefect(PyPI) = 3.4.2.dev2 No fix listed
pypi prefect(PyPI) = 3.4.2.dev3 No fix listed
pypi prefect(PyPI) = 3.4.2.dev4 No fix listed
pypi prefect(PyPI) = 3.4.2.dev5 No fix listed
pypi prefect(PyPI) = 3.4.20 No fix listed
pypi prefect(PyPI) = 3.4.20.dev1 No fix listed
pypi prefect(PyPI) = 3.4.20.dev2 No fix listed
pypi prefect(PyPI) = 3.4.21 No fix listed
pypi prefect(PyPI) = 3.4.21.dev1 No fix listed
pypi prefect(PyPI) = 3.4.21.dev2 No fix listed
pypi prefect(PyPI) = 3.4.21.dev3 No fix listed
pypi prefect(PyPI) = 3.4.21.dev4 No fix listed
pypi prefect(PyPI) = 3.4.21.dev5 No fix listed
pypi prefect(PyPI) = 3.4.22 No fix listed
pypi prefect(PyPI) = 3.4.23 No fix listed
pypi prefect(PyPI) = 3.4.23.dev1 No fix listed
pypi prefect(PyPI) = 3.4.23.dev2 No fix listed
pypi prefect(PyPI) = 3.4.23.dev3 No fix listed
pypi prefect(PyPI) = 3.4.24 No fix listed
pypi prefect(PyPI) = 3.4.24.dev1 No fix listed
pypi prefect(PyPI) = 3.4.24.dev2 No fix listed
pypi prefect(PyPI) = 3.4.24.dev3 No fix listed
pypi prefect(PyPI) = 3.4.24.dev4 No fix listed
pypi prefect(PyPI) = 3.4.24.dev5 No fix listed
pypi prefect(PyPI) = 3.4.25 No fix listed
pypi prefect(PyPI) = 3.4.25.dev1 No fix listed
pypi prefect(PyPI) = 3.4.25.dev2 No fix listed
pypi prefect(PyPI) = 3.4.25.dev3 No fix listed
pypi prefect(PyPI) = 3.4.25.dev4 No fix listed
pypi prefect(PyPI) = 3.4.25.dev5 No fix listed
pypi prefect(PyPI) = 3.4.26.dev1 No fix listed
pypi prefect(PyPI) = 3.4.26.dev2 No fix listed
pypi prefect(PyPI) = 3.4.26.dev3 No fix listed
pypi prefect(PyPI) = 3.4.26.dev4 No fix listed
pypi prefect(PyPI) = 3.4.26.dev5 No fix listed
pypi prefect(PyPI) = 3.4.26.dev6 No fix listed

References