Jenkins任意文件读取漏洞 (CVE-2024-23897)通告

一、漏洞概述

近日,绿盟科技CERT监测到Jenkins发布安全公告,修复了Jenkins CLI中的一个任意文件读取漏洞(CVE-2024-23897),由于Jenkins中默认启用其CLI命令解析器的一个功能,特定的解析器功能expandAtFiles可将@参数中后跟文件路径的字符替换为文件内容,导致攻击者可通过使用Jenkins 控制器进程的默认字符编码读取读取Jenkins上的任意文件,并结合Resource Root URL、Remember me cookie、存储型 XSS或CSRF等在Jenkins控制器中实现任意代码执行。目前PoC已公开,请受影响的用户尽快采取措施进行防护。

Jenkins是一款基于Java开发的开源项目,用于持续集成和持续交付的自动化中间件,可通过构建的Pipeline持续、自动地构建/测试软件项目,并监控软件开发流程,快速问题定位及处理。Jenkins 有一个内置的命令行界面(CLI),可从脚本或 shell 环境访问 Jenkins。当处理 CLI 命令时, Jenkins 使用args4j库解析 Jenkins 控制器上的命令参数和选项。

参考链接:

https://www.jenkins.io/security/advisory/2024-01-24/

二、影响范围

受影响版本

  • Jenkins <= 2.441
  • JenkinsLTS <= 2.426.2

不受影响版本

  • Jenkins >= 2.442
  • Jenkins LTS>= 2.426.3

三、漏洞防护

  • 官方升级

目前官方已发布新版本中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:https://www.jenkins.io/download

  • 其他防护措施

若相关用户暂时无法进行升级操作,也可通过下列措施进行临时缓解:

禁用Jenkins CLI:将 Java 系统属性 hudson.cli.CLICommand.allowAtSyntax 设置为 true

禁用CLI端点与SSH端口,可参考文档:https://github.com/jenkinsci-cert/SECURITY-3314-3315

 

声明

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。

绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

Spread the word. Share this post!

Meet The Author