关键信息摘要 受影响版本 D-Link DIR-823X(250416) 漏洞描述 D-Link DIR-823X 路由器存在通过 端点的远程命令注入漏洞。由于在处理 参数时缺乏完整的清洗机制(未过滤 或 字符),已知当前管理员密码的经过验证的攻击者可以注入任意 shell 命令。这些命令以 root 权限执行,当 UCI 配置被提交且系统 shell 处理被修改的配置时。 漏洞细节 Step 1: 参数提取 在 函数中处理密码修改请求,使用用户提供的新密码( )和当前密码( )通过 函数。 Step 2: 不充分的清洗 输入被传递给全局过滤函数 ,该函数使用静态黑名单来阻止 shell 元字符,但未包括换行字符( )。 Step 3: 命令注入和执行 在验证 与系统当前密码匹配(s2)后,未经清洗的 v2(新密码)被传递给 ,通过 uci set 构造系统命令。 证明概念 (PoC) 提供了用于验证通过 参数注入的测试脚本。 建议修复 1. 严格的白名单: 实现基于正则表达式的密码白名单,并明确拒绝任何换行符。 2. 使用 UCI API: 使用 UCI C API(uci_set, uci_commit)替换使用 shell 基于字符串的连接,以防止命令注入。 3. 清洗所有输入: 确保所有在 ASCII 范围 0x00-0x1F 的字符在传递给 shell 执行包装器之前被删除或转义。