CVE-2026-28810Erlang/OTP 内核组件(inet_res和inet_db模块)存在可预测数字生成漏洞,导致 DNS 缓存投毒风险。内置 DNS 解析器使用顺序的、进程全局的 16 位事务 ID 进行 UDP 查询,且未实现源端口随机化。由于响应验证几乎完全依赖此 ID,攻击者若能观察一次查询或预测下一个 ID,即可伪造 DNS 响应污染缓存。此漏洞违背了 RFC 5452 建议,影响多个 OTP 版本。
该漏洞源于 Erlang/OTP 内置 DNS 解析器(inet_res)在实现上的严重缺陷。首先,解析器使用顺序的、进程全局的 16 位事务 ID(Transaction ID)来标识 UDP DNS 查询。这种可预测性使得攻击者能够轻易猜出后续查询的 ID。其次,解析器未实现源端口随机化,这进一步减少了攻击者伪造响应所需猜测的信息熵。根据 RFC 5452 标准,DNS 查询应通过随机化端口和事务 ID 来防止投毒攻击,但 inet_res 未能遵循此最佳实践。攻击者利用此漏洞,只需观察到一次合法查询或通过计算预测下一个 ID,即可构造伪造的 DNS 响应。由于验证机制薄弱,解析器会接受这些伪造响应并将其存入缓存,从而将用户流量重定向至恶意服务器。尽管官方文档建议仅在受信任网络使用,但未明确标注导致误用风险。