在广泛使用的 Jenkins Docker 镜像中发现了一个严重的安全漏洞,这有可能危及数千家组织的构建管道。
2025 年 4 月 10 日发布的 Jenkins 安全公告披露了这一漏洞,它影响了某些 Docker 镜像中的 SSH 主机密钥处理功能,攻击者可能会利用该漏洞对 Jenkins 构建环境发动中间人攻击。
该问题被追踪为 CVE-2025-32754 和 CVE-2025-32755,影响 jenkins/ssh-agent Docker 镜像(版本为 6.11.1 及以下)以及已弃用的 jenkins/ssh-slave 镜像的所有版本。
Jenkins Docker 镜像漏洞
该漏洞源于 SSH 主机密钥是在映像创建期间生成的,而不是基于 Debian 的映像的容器启动。
公告警告称:“因此,所有基于相同版本镜像的容器都使用相同的 SSH 主机密钥。”
这从根本上破坏了 SSH 的安全模型,而在 SSH 安全模型中,主机密钥本应用于唯一标识服务器并建立信任关系。
Jenkins 项目感谢安全研究人员 Abhishek Reddypalle 发现并报告了这一漏洞。
漏洞摘要如下:
CVE 编号 | 受影响产品 | 影响 | 利用前提条件 | CVSS 3.1 评分 |
CVE-2025-32754 | Jenkins ssh-agent Docker 镜像(基于 Debian,版本≤ 6.11.1) | 中间人攻击、未经授权的访问、凭据窃取、构建操纵 | SSH 客户端(Jenkins控制器)与 SSH 构建代理之间的网络路径被拦截 | 9.1(严重) |
CVE-2025-32755 | Jenkins ssh-slave Docker 镜像(基于 Debian,所有版本) | 中间人攻击、未经授权的访问、数据操纵 | SSH 客户端(Jenkins控制器)与 SSH 构建代理之间的网络路径被拦截 | 9.1(严重) |
受影响的镜像
该漏洞具体影响以下镜像变体:
jenkins/ssh-agent:
1.所有未明确指定操作系统的标签,包括所有带有 -jdk* 和 -jdk*-preview 后缀的标签(2025 年 4 月 10 日前的版本)。
2.所有包含 debian、stretch、bullseye 或 bookworm 的镜像(2025 年 4 月 10 日前的版本)。
jenkins/ssh-slave(已弃用):
1.latest、jdk11、latest-jdk11、revert-22-jdk11-JENKINS-52279 标签的镜像。
2.基于 Alpine、Windows 和 Nanoserver 的变体不受此漏洞影响。
攻击途径及影响
该漏洞使得能够拦截 Jenkins 控制器与 SSH 构建代理之间网络流量的攻击者,能够在不触发 SSH 真实性警告的情况下冒充合法代理。
这种攻击途径可能会导致严重后果,包括:
1.拦截或修改构建工件
2.收集构建过程中使用的凭据或机密信息
3.向构建管道中注入恶意代码
在持续集成 / 持续交付(CI/CD)环境中,此类攻击尤其令人担忧,因为受影响的构建过程可能会引发供应链攻击,进而影响下游系统和客户。
Jenkins 项目已发布了 6.11.2 版本的更新后的 jenkins/ssh-agent 镜像,其中引入了一项关键的安全改进:
“基于 Debian 的 jenkins/ssh-agent 6.11.2 Docker 镜像会删除在镜像创建过程中自动生成的 SSH 主机密钥。新的主机密钥将在容器首次启动时生成。”
管理员可以通过检查 Docker 镜像来验证是否运行的是已打补丁的版本。已打补丁的镜像行为会为每个容器实例生成唯一的 SSH 主机密钥,而不是在所有部署中重复使用相同的密钥。
各组织应立即将其 Docker 镜像更新到此版本。已弃用的 jenkins/ssh-slave 镜像将不会收到更新,用户应迁移到 jenkins/ssh-agent 镜像。
发表评论
您还未登录,请先登录。
登录