Description
CoreDNS is a DNS server written in Go. Prior to 1.14.5, the CoreDNS rewrite plugin supports edns0 rewrite rules with an optional revert flag, and two response rules, edns0SetResponseRule and edns0ReplaceResponseRule[T] in plugin/rewrite/edns0.go, call res.IsEdns0() and immediately dereference the returned *dns.OPT without a nil check when a downstream plugin returns a response with no OPT record. A remote, unauthenticated client can send a single ordinary DNS query matching a rewrite edns0 <local|nsid|subnet> <set|append|replace> ... revert rule, causing ResponseReverter in plugin/rewrite/reverter.go to panic, return SERVFAIL, and degrade availability, or crash the CoreDNS process if the debug directive disables recovery. This issue is fixed in version 1.14.5.
Affected products
coredns.io: coredns
References5
- github.com/coredns/coredns/commit/fc447d0658b093edc8cd29a6b1712… Patch
- github.com/coredns/coredns/pull/8190 Issue TrackingPatch
- github.com/coredns/coredns/security/advisories/GHSA-9pmm-cxww-r… ExploitThird Party Advisory
- github.com/coredns/coredns/security/advisories/GHSA-9pmm-cxww-r… ExploitThird Party Advisory
- github.com/coredns/coredns/releases/tag/v1.14.5 Release Notes
Metrics
- CVSS 3.1
-
5.3
MEDIUM
Score source: CNA
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L - EPSS — exploit probability
- 1% percentile: 46 · as of 15 November 2026
- CWE
- CWE-476
Could this be exploited in your environment?
A patch closes the known hole. A penetration test shows what an attacker can still reach — with proof.