Jenkins是一款开源的持续集成(CI)和持续交付(CD)工具,用于自动化各种任务,包括构建、测试和部署软件。
该漏洞被分配了CVE标识符[CVE-2024-23897],被描述为通过内置的命令行接口(CLI)的任意文件读取漏洞。
“Jenkins 在处理 CLI 命令时使用 args4j 库来解析 Jenkins 控制器上的命令参数和选项,而此命令解析器具有将参数中 @ 字符后跟文件路径替换为文件内容 (expandAtFiles) 的功能。
攻击者可利用该特性使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进制文件),并结合 Resource Root URL、Remember me cookie、存储型 XSS 或 CSRF 等在 Jenkins 控制器中执行任意代码。
三、修复
Jenkins 在下面的版本中修复了漏洞,所以需要尽快升级到最新版本
Jenkins 2.442
LTS 2.426.3
临时解决办法:关闭对 CLI 的访问。
四、漏洞测试
根据已经公布的poc
执行如下命令:
java -jar jenkins-cli.jar -s http://jenkins:8080/ connect-node "@/etc/passwd"
可获取passwd文件内容。
扫描下方二维码,关注更多网络安全