CVE-2026-82399
massUnauthenticated memory-exhaustion DoS in CoreDNS DoH/DoQ/DoH3/gRPC listeners
CoreDNS before 1.14.7 unpacks attacker-controlled DNS messages before the fixed-header validation performed by dns.DefaultMsgAcceptFunc on its DNS-over-HTTPS, DNS-over-HTTP/3, DNS-over-QUIC, and DNS-over-gRPC request paths (plugin/pkg/doh/doh.go, core/dnsserver/server_quic.go, core/dnsserver/server_grpc.go). An unauthenticated client can abuse DNS name compression with inflated DNS section counts to trigger excessive memory allocation before the plugin chain runs. By sustaining enough concurrent requests, the attacker exhausts memory and terminates the CoreDNS process, and because allocation happens before the plugin chain, plugin-level rate limiting cannot prevent the denial of service. Only deployments exposing these non-default listeners are affected; the ordinary UDP and TCP listeners validate the header first and are not vulnerable. No in-the-wild exploitation, public proof-of-concept, or CISA KEV listing is currently known.
What to do: Upgrade to CoreDNS 1.14.7 or later. Audit Corefiles for quic://, https://, h3://, or grpc:// server blocks to determine exposure, and until patching, restrict those listeners to trusted clients via firewalling or allowlisting, noting that plugin-level rate limiting does not mitigate this flaw. UDP/TCP-only deployments can be deprioritized.
| CoreDNS | All versions prior to 1.14.7 with DoH, DoH3, DoQ, or DoG (gRPC) listeners enabled |
Order-of-magnitude estimate by the model from install counts, market share and public scan data it knows; verify before quoting.
CoreDNS is a DNS server written in Go. Prior to 1.14.7, the DNS-over-HTTPS, DNS-over-HTTP/3, DNS-over-QUIC, and DNS-over-gRPC request paths in plugin/pkg/doh/doh.go, core/dnsserver/server_quic.go, and core/dnsserver/server_grpc.go call dns.Msg.Unpack on attacker-controlled DNS section counts before dns.DefaultMsgAcceptFunc validates the fixed header. An unauthenticated client can use DNS name compression and excessive section counts to amplify allocation before the plugin chain, so plugin-level rate limiting cannot prevent concurrent requests from exhausting memory and terminating CoreDNS. The ordinary UDP and TCP listeners are not affected because they validate the header first. This issue is fixed in version 1.14.7.
- Weakness
- CWE-770
- Vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
In the news0 stories
No ingested article mentions this CVE yet.