
Jenkins 项目近日发布了一份至关重要的安全公告,其中披露了多个可能导致系统被完全攻陷的严重漏洞。公告的核心在于指出了 Jenkins 核心代码中存在的两个高危漏洞,以及一个常用第三方插件在处理凭证时出现的问题。
作为全球 CI/CD 流水线的支柱,这些漏洞无疑对众多 DevOps 团队构成了巨大的安全风险。攻击者极有可能利用这些弱点,将恶意代码直接注入软件开发生命周期的核心环节,后果不堪设想。
其中最为直接的威胁源于一个被评定为“高危”级别的任意文件创建漏洞(编号:CVE-2026-33001)。该漏洞影响 Jenkins 2.554 及更早版本,以及长期支持版(LTS) 2.541.2 及更早版本。具体而言,这些版本的 Jenkins 在处理 .tar 或 .tar.gz 归档文件时,未能安全地解析符号链接。
官方描述指出:“这使得攻击者可以精心构造一个归档文件,从而将任意文件写入文件系统中的任意位置,其权限仅受限于运行 Jenkins 服务的用户本身。”
当从 Jenkins 控制器提取此类恶意归档文件时,其影响是灾难性的。攻击者可以通过向 JENKINS_HOME/init.groovy.d/ 目录写入恶意 Groovy 脚本,或直接部署恶意插件,最终实现远程代码执行 (RCE)。此漏洞的触发门槛相对较低,任何拥有“Item/Configure”权限的用户,或者能够控制代理(Agent)进程的用户,都可以利用此漏洞发起攻击。
第二个同样被标记为“高危”的漏洞(编号:CVE-2026-33002)则存在于 Jenkins 的命令行接口(CLI)中。当 CLI 通过 WebSocket 方式被访问时,Jenkins 被发现使用了不安全的 HTTP 请求头来验证连接的来源。这一设计缺陷为 DNS 重绑定攻击打开了大门。
“攻击者可以诱导受害者访问一个恶意网站,” 公告解释道,“该网站通过 DNS 重绑定技术,将域名解析到 Jenkins 控制器的 IP 地址。如此一来,攻击者就能从一个不受信任的源,建立到 Jenkins CLI 端点的 WebSocket 连接,并以匿名用户的身份执行 CLI 命令。”
如果匿名用户恰好被授予了某些权限,或者 Jenkins 服务器配置了过于宽松的“任何人都可以做任何事”的安全策略,那么攻击者就可以利用 Groovy 脚本命令,在服务器上执行任意代码。
除了核心组件的修复,一个名为 LoadNinja 的第三方插件(v2.1 及更早版本)也被发现存在敏感信息泄露问题(CVE-2026-33003、CVE-2026-33004)。该插件“将 LoadNinja API 密钥以明文形式存储在作业的 config.xml 配置文件中”,并且未能在 Web 管理界面中对这些密钥进行加密展示。这意味着,任何拥有“项目/扩展读取”权限的用户都可以轻松窥探到这些本应保密的密钥。
管理员应立即采取行动,对生产环境中的 Jenkins 实例进行升级。Jenkins 官方已发布了以下补丁版本以修复上述漏洞:
- Jenkins 周报版:请升级至 2.555 版本。
- Jenkins 长期支持版 (LTS):请升级至 2.541.3 版本。
- LoadNinja 插件:请升级至 2.2 版本。
如果因故无法立即更新以修复 CLI 相关的漏洞(CVE-2026-33002),管理员应采取临时的缓解措施:“为其 Jenkins 控制器启用并配置严格的身份验证机制,并彻底移除匿名用户的所有权限。”
安全是 DevOps 实践中不可忽视的一环。定期关注官方公告、及时应用安全更新,是守护软件供应链安全的基础。关于更多运维与安全的最佳实践,你可以在 云栈社区 的技术板块中找到深入的讨论和分享。
|