CoreDNS漏洞允许攻击者固定DNS缓存并拒绝服务更新

阅读量4715

发布时间 : 2025-09-12 17:35:02

x
译文声明

本文是翻译文章,文章原作者 Guru Baran,文章来源:cybersecuritynews

原文地址:https://cybersecuritynews.com/coredns-vulnerability/

译文仅供参考,具体内容表达以及含义原文为准。

CoreDNS中发现一个严重漏洞,攻击者可通过固定DNS缓存条目中断服务,导致更新无法生效,形成拒绝服务。

该漏洞存在于CoreDNS的etcd插件中,源于关键逻辑错误:etcd租约ID被误解释为生存时间(TTL)值,导致DNS记录缓存周期异常延长。

漏洞根源位于plugin/etcd/etcd.go 文件的TTL()函数,该函数错误地将64位etcd租约ID截断为32位无符号整数,并将结果用作DNS记录的TTL。租约ID是租约授权的随机标识符,与租约持续时间无关。当生成大租约ID时,截断后的值可能代表极长的TTL(有时长达数十年)。

TTL混淆导致缓存固定

接收该记录的下游DNS解析器和客户端会按指定时长缓存记录,从而实现“缓存固定”攻击——攻击者可创建恶意或过时DNS条目并长期留存,阻止后续更新传播到受影响客户端。

攻击者若通过受损服务账户或配置不当环境获得etcd数据存储的写入权限,即可利用此漏洞:创建或更新DNS记录并附加租约(租约实际持续时间无关,仅租约ID起作用)。CoreDNS会以被误读的超大TTL提供该记录,导致客户端和解析器缓存过时信息。

即使etcd中的恶意条目被修正或删除,且CoreDNS重启,客户端仍会在本地缓存过期前持续解析错误地址。这对高可用性影响严重,关键服务更新、IP地址轮换或故障转移流程将被缓存固定的客户端忽略。

完整性影响被评为低——因为拥有etcd写入权限的攻击者本可将服务重定向至恶意端点,但该漏洞放大了此类攻击的持久性。

受影响版本与缓解措施

漏洞于CoreDNS 1.2.0版本引入,影响所有使用etcd插件进行服务发现的后续版本。

GitHub用户“@thevilledev”披露了该漏洞并贡献修复方案。建议缓解措施包括:更新TTL()函数,通过etcd租约API正确获取剩余租约时间,而非滥用租约ID;此外,应实施可配置的最小/最大TTL限制,防止极端值被下发。

使用CoreDNS etcd插件的用户需立即更新至补丁版本,以防潜在服务中断。

 

本文翻译自cybersecuritynews 原文链接。如若转载请注明出处。
分享到:微信
+10赞
收藏
安全客
分享到:微信

发表评论

Copyright © 北京奇虎科技有限公司 三六零数字安全科技集团有限公司 安全KER All Rights Reserved 京ICP备08010314号-66