【漏洞通告】 Jenkins CLI 任意文件读取漏洞

漏洞概况

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。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"。

漏洞复现

可下载本地环境测试,或者从网上找,但是不要进行破坏活动。

前往X情报社区资产测绘查看影响资产详情:​​​​​​https://x.threatbook.com/v5/survey?q=app%3D"Jenkins"

找了几个地址,发现有个是已匿名用户登录的,权限较小,可从这里下载Jenkins-CLI.jar包

执行poc

java -jar jenkins-cli.jar -s http://XXX:8080/ help @/etc/passwd

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

想高权限读取可以自己搭建测试环境。

05 处置建议

安全更新

目前官方已有可更新版本,建议受影响用户升级至:

Jenkins >= 2.442

Jenkins LTS >= 2.426.3

下载链接:https://www.jenkins.io/download/

缓解措施

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

通用建议

  • 最小权限原则:按照最小权限原则,为用户和插件分配适当的权限级别,仅提供其所需的操作和功能。

  • 安全配置:仔细配置Jenkins的安全设置,包括启用CSRF保护、禁用不必要的功能和插件、限制对重要文件和密钥的访问等。

  • 密钥管理:妥善管理和保护Jenkins中使用的密钥,包括限制对密钥文件的访问权限、定期更换密钥、使用安全的密钥存储等。

  • 审查日志:定期审查Jenkins的日志文件,以及监控和检测任何可疑活动或异常行为。

相关推荐
各类产品分享31 分钟前
化工园区做AR安全巡检推荐哪家供应商
安全·ar·ar智慧运维解决方案
米瑞格门窗36 分钟前
上海系统门窗哪个靠谱
大数据·人工智能·安全·家装·家装建材·系统门窗
Nuoyunjituan1 小时前
IPv6单栈、智能体互联、安全合规全面升级——互联网“新底座”政策对企业意味着什么?
安全
Chengbei112 小时前
云存储桶漏洞检测工具OSS-2.0更新,全类型文件解析,存储桶遍历 + 敏感排查一站式完成渗透取证
网络·安全·web安全·网络安全·xss
阿虎儿2 小时前
Linux 下为局域网 IP(如 192.168.1.100)打造不受浏览器警告的自签名 SSL/TLS 证书
linux·安全·https
回眸不遇3 小时前
类型的区别和应用场景 nested 每个对象独立存储为隐藏的子文档 适合存储数组 查询的时候有特定的语法 nested查询 且字段要 ...
运维·jenkins
JackSparrow4143 小时前
前端安全之JS混淆+请求加密+请求签名以提升爬虫难度
前端·javascript·后端·爬虫·python·安全
鹿鸣天涯3 小时前
应急响应:MySQL日志分析
mysql·安全·adb·oracle
砚凝霜4 小时前
软考网络工程师|第 4 章 WLAN MAC 机制、Ad Hoc、无线安全、WPAN 蓝牙 ZigBee 完整备考笔记
网络·笔记·安全
奇迹暖暖暖15 小时前
企业邮箱选型与部署:公司用什么邮箱比较好、如何注册企业邮箱
安全·架构·邮箱