关键信息 重要提醒:区别于CVE-2025-10963并解释绕过补丁 此提交不是之前披露的CVE-2025-10963的重复,而是记录了供应商最新固件中的补丁绕过(不完整修复)。 在与CVE-2025-10963关联的旧固件(V240425)中, 参数被连接到系统命令中,没有任何有效的清理。在本报告中测试的新固件(V251208)中,供应商试图通过引入全新的过滤函数 来修复CVE-2025-10963。 然而,我们在反向工程中揭示了这个新补丁中的一个关键逻辑错误:黑名单过滤器成功地阻止了 , , 和 等字符,但致命的忽略了分号( )这个命令分隔符。该报告具体演示了攻击者如何利用这个新引入的、有缺陷的过滤器绕过供应商的安全补丁来利用CVE-2025-10963,通过分号注入,因为基础代码逻辑已经发生了根本性变化(添加了一个有缺陷的清理层)并且利用机制不同,因此这个构成与不完整修复相关的单独漏洞。 概述 供应商:Wavlink 产品:NU516U1 版本:WAVLINK-NU516U1-A-WO-20251208-BYFM 产品用途:USB打印服务器 类型:命令注入 漏洞描述 Wavlink NU516U1 (V251208)路由器固件(版本M16U1_V251208)的 组件中存在命令注入漏洞。该漏洞位于处理 参数的 函数中,该参数由过滤函数 检查用户输入,但由于黑名单机制的实现不够严格而遗漏了关键命令分隔符分号(;),导致认证远程攻击者可以通过构建恶意 参数和使用 函数将任意shell命令拼接到系统调用中执行,从而获得设备的完全控制权。 漏洞详情 受影响组件: 受影响函数: & (过滤逻辑) 在 函数中,通过用户输入获取防火墙参数的值。将防火墙参数的值设置为 调用 函数。 主逻辑执行:sub_4016D0(触发漏洞) 该函数充当“执行者”并盲目信任由上述过滤函数检查的数据。 1. 获取输入:通过 获取用户通过HTTP参数 提交的输入。 2. 调用过滤:调用 检查输入。如果函数返回1(发现非法字符),则退出报错;如果返回0(被认为是安全的),则继续执行。 3. 危险拼接:进入 分支后,程序直接使用 函数将用户输入拼接到系统命令字符串中: 。 4. 命令执行:最后调用 。这是 函数的包装器,将连接的字符串直接传递给 用于执行。 过滤器逻辑失败:sub_405B2C(漏洞根源) 该函数充当“安全检查器”,但其不包括黑名单中最重要的字符项目之一: - 工作原理:该函数接收用户输入的字符串,通过 循环遍历每个字符,并使用 函数检查字符是否存在于预定义的“黑名单”字符串中。 - 黑名单内容:定义在代码中的黑名单非常长:" ,涵盖了危险的字符如管道字符、重定向、变量引用、子shell等。 - 致命缺陷(根源):黑名单中缺少关键分号(;)。