Jenkins 2024 Jenkins CLI 任意文件读取漏洞及修复办法

教程分享 > Linux和Shell教程 > Linux安全防护 (0) 2024-03-14 18:41:18

漏洞概况

Jenkins 有一个内置的命令行界面(CLI),可从脚本或 shell 环境访问 Jenkins。处理 CLI 命令时, Jenkins 使用args4j库解析 Jenkins 控制器上的命令参数和选项。

Jenkins处理CLI命令的命令解析器中的expandAtFile功能存在任意文件读取漏洞,未经身份认证的远程攻击者利用该漏洞可以读取部分文件的有限行内容,攻击者经过身份验证或目标Jenkins更改了默认”Security”配置可以通过该漏洞读取任意文件,攻击者进一步利用该漏洞并结合其他功能可能导致任意代码执行。

值得一提的是,通过该漏洞读取到完整文件内容的前提是需要攻击者使用的鉴权用户拥有 Overall/Read 权限,而Jenkins默认安装的匿名用户并没有 Overall/Read 权限,所以通过匿名用户只能读取到文件的部分内容。

漏洞编码

QVD-2024-3674, CVE-2024-23897

 

影响版本

Jenkins <= 2.441 

Jenkins LTS <= 2.426.2

2024-01-25

影响量级

十万级

奇安信评级

高危

CVSS 3.1分数

9.8

威胁类型

信息泄露,代码执行

利用可能性

POC状态

已公开

在野利用状态

未发现

EXP状态

未公开

技术细节状态

已公开

 

利用条件:经过身份验证或Jenkins配置了“Allow anonymous read access”或”Anyone can do anything”。

修复办法

缓解办法

禁用CLI或限制访问:如果不需要使用Jenkins CLI,可以在Jenkins配置中禁用CLI功能。如果需要使用CLI,请限制对CLI的访问权限,并仅授权给受信任的用户。

更新Jenkins版本到最新【推荐方案】

下载Jenkins

打开Jenkins官网 www.jenkins.io/download/ 下载最新LTS版本,例如:

wget https://get.jenkins.io/war-stable/2.440.1/jenkins.war

下载jdk17

打开jdk官网 www.oracle.com/cn/java/technologies/downloads/#java17

下载最新的压缩版本jdk17 LTS 版本,例如:

wget https://download.oracle.com/java/17/latest/jdk-17_linux-x64_bin.tar.gz

下载后解压到目录/opt/jdk17

解释:为啥下载jdk17?

因为有些人业务是用的jdk1.8版本,然后编译啥的依赖jdk1.8,而新版本的Jenkins需要最低jdk17,为了减少业务动作,这里下载zip版本的jdk专门给Jenkins使用。

备份Jenkins工作目录

主要是备份Jenkins哪些任务啥的谨防升级失败数据丢失。

cp -R  .jenkins jenkins.bak

 

Jenkins启动

/opt/jdk17/bin/java  -jar jenkins  --你的其他参数

jenkins 新启动界面

登录上去记得更新插件在使用哟

至此操作完成。

 

 

https://www.leftso.com/article/Jenkins-CVE-2024-23897-bugfix.html

相关文章
漏洞概况Jenkins有一个内置的命令行界面(CLI),可从脚本或shell环境访问Jenkins。Jenkins漏洞修复方案讲解
把应用系统比作是保险柜,假如保险柜破了一个洞,这个洞只有少数人知道,没有传播开来,也暂时没有补救的措施,那这个洞就是0day漏洞。
Ubuntu系统或者Linux系统都应该保证软件更新到最新,以减少软件漏洞导致服务器风险。Ubuntu系统更新软件主要分两步。第一步:更新软件源信息该操作只会更新软件最新的信息到本地,不会下载和安装。