CVE-2026-30871OpenWrt项目24.10.6和25.12.1之前版本的mdns守护进程中存在栈溢出漏洞。攻击者可利用反向DNS查询触发该漏洞,通过构造恶意DNS包导致栈缓冲区溢出,从而可能实现远程代码执行,对系统造成严重安全风险。
该漏洞位于OpenWrt mdns守护进程的`parse_question`函数中。当系统在UDP 5353端口接收并处理针对反向DNS域(如.in-addr.arpa和.ip6.arpa)的PTR查询时触发。漏洞成因在于`dn_expand`函数会将数据包中的非打印ASCII字节(例如0x01)转换为多字符的八进制表示形式(例如\001),并将转换后的数据放入8096字节的全局缓冲区。随后,代码使用无边界检查的`strcpy`将此数据复制到固定大小仅为256字节的栈缓冲区中。这种膨胀机制导致数据量极易超出栈缓冲区容量,从而引发栈溢出,允许攻击者通过普通的组播DNS包处理流程进行利用。