2026年4月30日,CoreDNS项目维护团队发布了安全更新,修复了多个高危漏洞,包括CVE-2026-26018(DNS循环检测插件拒绝服务漏洞)以及多个与DoH(DNS over HTTPS)/DoQ(DNS over QUIC)协议相关的安全缺陷。由于CoreDNS是Kubernetes集群中默认的DNS服务实现(kube-dns),几乎所有运行Kubernetes的企业都会受到影响。建议所有使用CoreDNS的运维团队立即评估风险并安排升级。
CoreDNS 漏洞详情
本次披露的核心漏洞包括:
| CVE编号 | 漏洞类型 | 影响版本 | 修复版本 |
|---|---|---|---|
| CVE-2026-26018 | DoS(循环检测插件崩溃) | < 1.14.2 | 1.14.3+ |
| 多漏洞(未分配独立CVE) | DoS / DNS缓存投毒 / 信息泄露 | 涉及DoH/DoQ模块 | 1.14.3+ |
漏洞技术背景
CVE-2026-26018位于CoreDNS的loop(循环检测)插件中。该插件的设计目的是检测DNS循环查询(例如,DNS服务器将查询转发回自身),防止无限循环消耗资源。然而,在1.14.2之前的版本中,该插件存在缺陷,攻击者可以发送特制的DNS查询,导致CoreDNS进程崩溃,造成DNS服务中断。对于依赖DNS进行服务发现的Kubernetes集群而言,DNS服务中断意味着几乎所有服务间通信都会失败,影响极其严重。
DoH/DoQ相关漏洞则涉及CoreDNS在处理DNS over HTTPS和DNS over QUIC协议时的实现缺陷,可能导致DNS缓存投毒(攻击者可以篡改DNS解析结果,将流量劫持到恶意服务器)或信息泄露(泄露内网拓扑和查询模式)。
为什么Kubernetes环境特别脆弱?
在Kubernetes集群中,CoreDNS承担着至关重要的服务发现职责。每个Pod在需要访问其他服务时,都会通过CoreDNS进行域名解析。一旦CoreDNS被破坏,攻击者可以:
- 实施中间人攻击:通过DNS缓存投毒,将关键服务的域名解析到攻击者控制的IP;
- 造成集群级拒绝服务:通过触发DoSing漏洞,使整个集群的服务发现机制瘫痪;
- 窃取集群内部信息:通过DNS查询模式分析,推测集群内部的服务部署拓扑。
升级操作指南
对于直接使用CoreDNS的场景(如Kubernetes的kube-dns),升级步骤如下:
- 确认当前版本:执行
coredns --version或在Kubernetes中查看CoreDNS Pod的镜像版本; - 下载新版本:从CoreDNS GitHub Releases页面获取1.14.3或更高版本的二进制文件;
- Kubernetes环境:修改CoreDNS Deployment的容器镜像版本,然后执行滚动更新;
kubectl set image deployment/coredns coredns=coredns/coredns:1.14.3 -n kube-system kubectl rollout status deployment/coredns -n kube-system
- 验证升级结果:确认新Pod正常运行,并通过
dig命令测试DNS解析功能; - 限制DoH/DoQ暴露:如不需要,请在CoreDNS配置中禁用DoH和DoQ监听器,减少攻击面。
企业IT运维的实践建议
DNS作为互联网和内部网络的基础设施,其安全性往往被忽视。我们建议企业将DNS服务的安全纳入日常运维检查清单:定期关注CoreDNS、BIND、PowerDNS等DNS软件的官方安全公告;对Kubernetes集群中的CoreDNS副本设置合理的资源限制和健康检查;考虑在DNS前面部署DNS防火墙或威胁检测系统。作为专业的IT外包服务团队,我们在为客户设计Kubernetes架构时,始终将DNS服务的高可用性和安全性作为核心设计目标之一。
如需了解更多关于Kubernetes安全加固或企业DNS架构设计的内容,欢迎通过我们的网站留言交流。