Jenkins CVE-2024-23897: 任意文件读取漏洞导致远程代码执行
Jenkins 使用 args4j 库来解析 CLI 命令中的命令参数和选项。该命令解析器具有一个特性,当参数中包含 @ 字符后跟文件路径时,会用文件内容替换该参数(expandAtFiles)。该特性默认启用,且 Jenkins 2.441 及更早版本、LTS 2.426.2 及更早版本未禁用此功能。
这使得攻击者能够使用 Jenkins 控制器进程的默认字符编码读取 Jenkins 控制器文件系统上的任意文件。
拥有 Overall/Read 权限的攻击者可以读取完整的文件。
没有 Overall/Read 权限的攻击者可以读取文件的前几行。可读取的行数取决于可用的 CLI 命令。截至本公告发布时,Jenkins 安全团队已发现,在未安装任何插件的情况下,可在最新版本的 Jenkins 中读取文件的前三行,并且尚未发现任何会增加此行数的插件。
更多信息: https://www.jenkins.io/security/advisory/2024-01-24/
运行:python CVE-2024-23897.py -l host.txt -f /etc/passwd
