Dnsmasq 软件包中发现了六个漏洞,该软件包集成了缓存 DNS 解析器、DHCP 服务器、IPv6 路由公告服务和网络启动系统。这些漏洞允许攻击者执行 root 代码、重定向域名、发现进程内存以及导致服务崩溃。这些问题已在 dnsmasq 2.92rel2 版本中修复,修复程序也以补丁的形式提供。
发现的问题:
- CVE-2026-4892 是 DHCPv6 实现中的一个缓冲区溢出漏洞,攻击者可以利用该漏洞通过发送精心构造的 DHCPv6 数据包,在本地网络访问权限下执行具有 root 权限的代码。溢出的原因是,DHCPv6 CLID 被写入缓冲区时,没有考虑到数据包以十六进制表示法存储数据,而十六进制表示法中每个实际 CLID 字节需要三个“%xx”字节(例如,存储一个 1000 字节的 CLID 将导致写入 3000 字节)。
- CVE-2026-2291 - extract_name() 函数中的缓冲区溢出漏洞允许攻击者向 DNS 缓存中插入虚假条目并导致重定向。 领域 重定向到另一个 IP 地址。溢出是由于 dnsmasq 在分配缓冲区时,没有考虑到域名内部表示中某些字符的转义而导致的。
- CVE-2026-4893 是一个信息泄露漏洞,攻击者可以通过发送包含客户端子网信息(RFC 7871)的特制 DNS 数据包来绕过 DNS 验证。该漏洞可用于重定向 DNS 响应,并将用户重定向到攻击者的域。该漏洞的原因是,攻击者将 OPT 记录长度而非数据包长度传递给了 `check_source()` 函数,导致该函数始终返回验证成功的结果。
- CVE-2026-4891 - DNSSEC 验证中的越界读取漏洞导致在处理特制 DNS 查询时响应中出现内存泄漏。
- CVE-2026-4890 – DNSSEC 验证循环可能导致通过特制 DNS 数据包拒绝服务。
- CVE-2026-5172 - extract_addresses() 函数中的越界读取导致在处理特制 DNS 响应时崩溃。
可以在以下页面上评估发行版中漏洞修复的状态(如果页面不可用,则表示发行版开发人员尚未开始解决该问题): Debian, UbuntuSUSE、RHEL、Gentoo、Arch、Fedora、OpenWRT、FreeBSD。Dnsmasq 项目也参与了该平台。 Android 以及 OpenWrt 和 DD-WRT 等专用发行版,还有许多厂商的无线路由器固件中都内置了 Dnsmasq。在标准发行版中,如果使用 libvirt 提供 DNS 服务,则可以安装 Dnsmasq。 虚拟机 或在 NetworkManager 配置器中激活。
来源: opennet.ru
