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

编程教程 > Jenkins (0) 2024-12-10 11:36:16

漏洞概况

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 新启动界面

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

至此操作完成。

 

 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
漏洞概况Jenkins有一个内置的命令行界面(CLI),可从脚本或shell环境访问Jenkins。Jenkins漏洞修复方案讲解
新装Jenkins安装插件全部失败【已解决】 切换到Jenkins的工作目录,一般是用户主目录下面的.jenkinscd ~.jenkins/updates#备
WAR文件 安装Jenkins 的 Web 应用程序存档 (WAR) 文件版本可以安装在任何运行 Jenkins 支持的 Java 版本的操作系统或平台上
问题描述直接安装的Jenkins,然后每次构建代码发现时间都和当前的时间不对,列表差8小时问题解决首先找到Jenkins的命令运行界面
继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
Jenkins jdk8最后一个LTS长期支持版本   版本号: wget https://get.jenkins.io/war-stable/2.346.3/jenkins....
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三...
jenkins  pipeline 配置案例pipeline { agent any stages { stage('Stop Service') { ...
问题描述Jenkins pipeline 流水线 执行 sh命令/shell脚本遇到 exit code 1。主要是部分工具有特殊问题,例如grep工具,在找得
Publish over SSH 组件是远程部署用的比较多的一个组件,这里说下它的目录相关一、相对于用户目录 如果在Jenkins的 【系统管理-&gtl;系统配置】中,Remote Direc...
Gogs 端配置在gogs 仓库设置 菜单里面找到 管理WEB钩子在 添加新的 Web 钩子 这里类型选择Gogs选择后界面为:这里主要配置两个地方,一个是 推送地址 一个是 密钥文本 其中 推...