事件经过
CVE-2026-5366 发布于 2026-06-20(CVSS 9.9 严重,CWE-94)。Prefect 版本 3.6.23 及更早版本在用于获取 ML/数据管道执行代码的 GitRepository 存储类中不当处理用户控制的输入。commit_sha 和 directories 参数传递给 git 子流程调用而无需验证或 -- 参数分隔符,允许 git 标志注入(例如 --upload-pack),导致 git 执行攻击者控制的外部程序。受影响的版本列为"通过最新",表示在披露时无上游补丁可用。
影响分析
Prefect 是广泛使用的 MLOps 工作流编排平台。在共享或多租户部署中(在企业 ML 平台中很常见),一个权限较低的用户(只能创建部署的用户)可以升级到工作机上的任意代码执行,可能会危及所有可供工作机访问的 ML 管道密钥、模型工件、训练数据和云凭证。
攻击途径
具有部署创建权限的攻击者将恶意 commit_sha 或 directories 参数传递给 Prefect 的 GitRepository 存储类。因为这些值被插值到 git 子流程调用中而没有 -- 分隔符或输入验证,攻击者可以注入任意 git 标志(如 --upload-pack)以执行外部程序,在工作机上实现 RCE
受影响系统
Prefect (prefecthq/prefect) ≤ 3.6.23
缓解措施
在披露时未确认补丁版本;监视 https://huntr.com/bounties/e2e88a0f-a8f6-49c9-94c5-e98dc385f07a 和 Prefect GitHub 以获取修复。限制部署创建权限并避免向不受信任的用户公开共享工作池。