CVE-2024-23897 Jenkins 任意文件读取漏洞

news2024/11/16 7:27:51

项目介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。

项目地址

https://www.jenkins.io/zh/

漏洞概述

Jenkins 有一个内置的命令行界面CLI,在处理 CLI 命令时Jenkins 使用args4j 库解析 Jenkins 控制器上的命令参数和选项。此命令解析器具有一个功能,可以将@参数中后跟文件路径的字符替换为文件内容 ( expandAtFiles)。

根据Jenkins 官方描述,具有Overall/Read权限的攻击者可以读取整个文件,未授权的攻击者仅能读取文件前几行内容。攻击者可以通过读取jenkins文件获取相关密钥从而实现命令执行。

此功能默认启用,Jenkins 2.441 及更早版本、LTS 2.426.2 及更早版本默认不会禁用它。鉴于漏洞 exp 已公开,为避免您的资产受到影响,建议尽快安排修复升级方案。

影响版本

<= Jenkins 2.441、<= LTS 2.426.2

环境搭建

1、下载漏洞版本的jenkins

https://mirrors.jenkins.io/war-stable/

2、运行命令

java -jar jenkins.war --httpPort=8080

漏洞复现

1、下载jenkins-cli.jar,CLI 客户端可以直接在Jenkins主机下载

2、执行poc

漏洞分析

根据官方描述,问题出在args4j 库的expandAtFiles,因此在对应方法上直接下断点。根据调用堆栈,分析执行流程。

在main方法中会首先检查当前命令是否是who-am-i或者help,如果使用其他命令就会检查权限,并出现如下错误。

通过使用help命令绕过权限校验,继续跟踪调用流程。当getAtSyntax属性为true时,将通过expandAtFiles继续解析参数

在expandAtFiles中如果检测到@开头的参数,则会读取对应文件内容并返回

由于文件内容不符合参数格式要求,因此最后作为异常返回

由于读取的文件内容最后是通过异常返回的,因此不同的命令返回的结果长度不同,如果没有权限,则只能使用help或者who-am-i命令,返回的长度有限。但是当攻击者具备Overall/Read权限时,就可以使用更多jenkins命令,从而读取更多文件内容。这里仅仅分析漏洞原理,不在深究。

在新版本中,jenkins默认关闭了ALLOW_AT_SYNTAX参数

修复方式

升级到最新版或者禁用cli功能

参考链接

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

https://mp.weixin.qq.com/s/9xXO73YGi5xOQQ_Uakregw

https://www.jenkins.io/zh/doc/pipeline/tour/getting-started/

https://github.com/jenkinsci/jenkins/commit/554f03782057c499c49bbb06575f0d28b5200edb

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1414372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以太网的 MAC 层

目录 1. MAC 层的硬件地址 48 位的 MAC 地址 2. MAC 帧的格式 以太网 V2 的 MAC 帧格式 无效的 MAC 帧 IEEE 802.3 MAC 与以太网 V2 MAC 帧格式的区别 1. MAC 层的硬件地址 硬件地址又称为物理地址&#xff0c;或 MAC 地址。 IEEE 802 标准为局域网规定了一种 48 位…

多维数组的使用

1. 数组的概念 数组(Array)&#xff1a;是多个相同类型数据按一定顺序排列的集合&#xff0c;并使用一个名字命名&#xff0c;并通过编号的方式对这些数据进行统一管理。 数组中的概念&#xff1a; – 数组名 – 下标&#xff08;或索引&#xff09; – 元素 – 数组的长度 …

flink-java使用介绍,flink,java,DataStream API,DataSet API,ETL,设置 jobname

1、环境准备 文档&#xff1a;https://nightlies.apache.org/flink/flink-docs-release-1.17/zh/ 仓库&#xff1a;https://github.com/apache/flink 下载&#xff1a;https://flink.apache.org/zh/downloads/ 下载指定版本&#xff1a;https://archive.apache.org/dist/flink…

【Leetcode】2861. 最大合金数

文章目录 题目思路代码结果 题目 题目链接 假设你是一家合金制造公司的老板&#xff0c;你的公司使用多种金属来制造合金。现在共有 n 种不同类型的金属可以使用&#xff0c;并且你可以使用 k 台机器来制造合金。每台机器都需要特定数量的每种金属来创建合金。 对于第 i 台…

Redis(八)哨兵机制(sentinel)

文章目录 哨兵机制案例认识异常 哨兵运行流程及选举原理主观下线(Subjectively Down)ODown客观下线(Objectively Down)选举出领导者哨兵选出新master过程 哨兵使用建议 哨兵机制 吹哨人巡查监控后台master主机是否故障&#xff0c;如果故障了根据投票数自动将某一个从库转换为新…

深入理解STM32中断处理机制

深入理解STM32中断及其使用方法&#xff08;基于HAL库&#xff09; STM32微控制器作为一款强大的嵌入式系统芯片&#xff0c;在各种应用中都需要使用中断来实现实时响应和处理各种事件。本文将深入讨论STM32中断的概念、HAL库的中断处理机制以及如何在STM32CubeMX中配置和使用…

AI编译器的后端优化策略

背景 工作领域是AI芯片工具链相关&#xff0c;很多相关知识的概念都是跟着项目成长建立起来&#xff0c;但是比较整个技术体系在脑海中都不太系统&#xff0c;比如项目参与中涉及到了很多AI编译器开发相关内容&#xff0c;东西比较零碎&#xff0c;工作中也没有太多时间去做复盘…

特征点匹配 harris

算法的核心是利用局部窗口在图像上进行移动&#xff0c;判断灰度是否发生较大的变化。如果窗口内的灰度值&#xff08;在梯度图上&#xff09;都有较大的变化&#xff0c;那么这个窗口所在区域就存在角点。 这样就可以将 Harris 角点检测算法分为以下三步&#xff1a; 当窗口…

java/node代码 破解“滑动验证码”的移动距离

1.直接上代码结论 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL;p…

【C++中的STL】函数对象

函数对象 函数对象概念谓词概念 内建函数对象算术仿函数关系仿函数逻辑仿函数&#xff08;基本用不到&#xff09; 函数对象概念 重载函数调用操作符的类&#xff0c;其对象常称为函数对象&#xff0c;函数对象使用重载的()时。行为类似函数调用&#xff0c;也叫仿函数。 函数…

2024年2月最新python批量下载快手个人主页短视频代码(带翻页)

python批量下载快手个人主页短视频代码&#xff0c;2024年1月27日测试过了&#xff0c;如果日后更新了&#xff0c;私聊我 快手个人主页分视频和直播回放&#xff0c;直播回放的地址是m3u8&#xff0c;视频的地址是mp4 m3u8我采用的是hm3u8dl_cli这个库就行下载&#xff0c;带…

HarmonyOS Web组件

1. 前言 众所周知&#xff0c;在Android系统App开发中&#xff0c;我们往往会直接跳转到网页。比如微信给你发了一个链接&#xff0c;默认也是在App之内打开的。很多App就只使用一个WebView作为整体框架&#xff0c;这样开发的好处是&#xff0c;只要使用少量的代码即可完成交互…

文本分类识别系统Python+卷积神经网络算法+TensorFlow+Django网页界面

一、介绍 文本分类系统&#xff0c;使用Python作为主要开发语言&#xff0c;通过选取的中文文本数据集&#xff08;“体育类”, “财经类”, “房产类”, “家居类”, “教育类”, “科技类”, “时尚类”, “时政类”, “游戏类”, “娱乐类”&#xff09;&#xff0c;基于Te…

企业培训APP:在线教育系统源码开发指南

本篇文章&#xff0c;小编将为读者讲解如何开发一款功能强大的企业培训APP&#xff0c;以及其中的关键源码开发指南。 一、确定需求与功能模块 在着手开发之前&#xff0c;首先需要明确企业培训APP的需求和功能模块。这包括用户注册与登录、课程管理、学员管理、在线考试、成绩…

Android发展历程及安装

目录 发展历程 下载网址 安装过程 发展历程 安卓基于Linux内核&#xff0c;Linux内核相当于房屋的地基 开源不等于免费&#xff0c;不能商用 安卓一般每半年小更新&#xff0c;一年大更新 对应API相当于别名 现在安卓安全性越来越高&#xff0c;性能越来越快&#xff0c…

提升养殖场效益,从饲料粉碎机开始

为了提高养殖效益&#xff0c;养殖户可以从很多方面着手&#xff0c;其中饲料成本是一个重要的因素。为了降低饲料成本&#xff0c;养殖户可以考虑从饲料粉碎环节入手。通过购买和采用高效、低成本的饲料粉碎机&#xff0c;养殖户可以更好地控制饲料成本&#xff0c;提高饲料的…

惊天秘闻-绕过安全设置悄悄导入VBA代码

免责声明&#xff1a; 本文所提供的VBA代码仅供学习和参考之用。作者对用户使用此代码可能产生的任何后果概不负责&#xff0c;包括但不限于数据损失、程序错误或其他不良影响。 使用VBA开发工具时&#xff0c;为了实现动态代码更新&#xff0c;将会用到导入代码模块&#xff0…

为什么网页打开慢?是服务器的问题吗?

当我们遇到网页加载缓慢时&#xff0c;首先想到的可能是服务器的问题。的确&#xff0c;服务器是影响网页加载速度的一个重要因素。然而&#xff0c;这并非是唯一的原因。实际上&#xff0c;网页加载速度受多种因素影响&#xff0c;包括但不限于服务器、网络带宽、DNS解析时间、…

深入浅出理解目标检测的非极大值抑制(NMS)

一、参考资料 物体检测中常用的几个概念迁移学习、IOU、NMS理解 目标定位和检测系列&#xff08;3&#xff09;&#xff1a;交并比&#xff08;IOU&#xff09;和非极大值抑制&#xff08;NMS&#xff09;的python实现 Pytorch&#xff1a;目标检测网络-非极大值抑制(NMS) …

课时5:编程语言解读

1.2.1 编程语言解读 学习目标 这一节&#xff0c;我们从 基础知识、编程语言、小结 三个方面来学习。 基础知识 程序 外在关系&#xff1a;业务数据&#xff1a;用户访问业务时候&#xff0c;产生的信息内容数据结构&#xff1a;静态的描述了数据元素之间的关系算法&#x…