在CoreDNS中发现了一个关键的拒绝服务(DoS)漏洞,CoreDNS是模块化DNS服务器,广泛部署在云原生和容器化环境中。跟踪为CVE-2025-47950,此漏洞影响DNS-over-QUIC(DoQ)实现,并允许未经身份验证的攻击者通过流放大攻击耗尽服务器内存 – 可能导致Out Of Memory(OOM)崩溃。
“服务器之前为每个传入的QUIC流创建了一个新的goroutine,而不对并发流或goroutine的数量施加任何限制,”CoreDNS团队在其安全咨询中解释道。
该漏洞存在于 1.1.22 之前的 CoreDNS 版本中,特别是影响在 Corefile 中启用 quic / / 的部署。通过向服务器充斥大量 QUIC 流,远程攻击者可以触发无界的 goroutine 创建和快速内存消耗,从而崩溃服务,特别是在内存受限或容器化环境中。
“单个攻击者可能导致CoreDNS实例使用最小的带宽和CPU变得无响应,”该咨询警告说。
该补丁在1.12.2版本中发布1.12.2,引入了两个关键保护措施:
①max_streams
: 限制每个连接的并发 QUIC 流数。默认值:256。②worker_pool_size:
建立一个有界的工人池来管理流处理。默认值:1024。
这些缓解措施有效地用更具可扩展性和内存弹性的设计取代了之前的1:1流到华丽模型。用户可以在以下情况下配置这些值。quic
clock 在 Corefile 中:
这消除了1:1的流到Goroutine模型,并确保CoreDNS在高并发性下保持弹性。
对于无法立即升级的用户,CoreDNS建议采取以下临时措施:
- ①禁用 QUIC 通过删除或注释
quic://
在 Corefile 中块。 - ②使用容器运行时资源限制来检测和隔离内存过度使用。
- ③监控 QUIC 流量以识别异常连接模式。
只有明确启用 QUIC 支持的部署才会受到影响。使用标准 DNS-over-UDP/TCP 设置的组织不受此漏洞的影响。