事件经过
Kubeflow Pipelines在工件下载和Pod日志路径中信任攻击者提供的对象存储端点元数据,而不是根据运营商控制的存储配置进行验证。在默认的禁用授权的独立设置中,这允许从共享的ml-pipeline-ui Pod对内部服务进行SSRF,并且在使用配置的对象存储凭据对请求进行签名时可以泄露访问密钥标识符。
影响分析
ML工作流基础设施通常部署为共享UI Pod,被信任可访问内部服务;此SSRF可用于内部网络侦察或向对象存储凭据移动,破坏了管道UI与ML平台其余部分之间的隔离。
攻击途径
前端工件下载路径对于source=s3或source=minio接受providerInfo.Params.endpoint,归档的Pod日志路径接受来自工作流状态的S3兼容端点元数据,而不要求这些端点与运营商控制的存储配置匹配。未认证的调用者可以使共享的ml-pipeline-ui Pod向任意可访问的主机发送请求并返回响应数据;签名请求可能会泄露访问密钥标识符。
受影响系统
Kubeflow Pipelines < 2.18.0
缓解措施
升级到Kubeflow Pipelines 2.18.0。公告:https://github.com/kubeflow/pipelines/security/advisories/GHSA-3pcj-8j5w-jmxq