Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessSend DNS query matching edns0 revert rewrite rule
-
DeliveryDownstream handler returns response without OPT record
-
ExploitResponseReverter calls IsEdns0(), receives nil pointer
-
ExecutionNil dereference triggers Go panic
-
PersistCoreDNS returns SERVFAIL or process terminates (debug mode)
-
ImpactDNS resolution unavailable for all cluster workloads
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Null pointer safety, defensive checks
MITRE ATT&CK
1 technique across 1 tactic: Impact The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires that the CoreDNS rewrite plugin is configured with at least one edns0 rewrite rule that includes the optional revert flag - specifically using the form 'rewrite edns0 <local|nsid|subnet> <set|append|replace> ... revert'. This is a non-default configuration; CoreDNS installations that do not use the rewrite plugin or that use edns0 rules without the revert flag are not affected. The attacker's query must match the configured rule pattern, but no special crafting beyond a standard DNS query is required - the vulnerable code path is triggered by the absence of an OPT record in the downstream response, not by anything in the attacker's query itself. No authentication is required per CVSS PR:N. The crash outcome (versus SERVFAIL degradation) is additionally limited to deployments where the CoreDNS debug directive has been explicitly added to the Corefile, disabling default panic recovery. |
| Impact | The CVSS 3.1 base score of 5.3 (Medium) with vector AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L accurately reflects the default-deployment outcome: a SERVFAIL response rather than a process crash. However, the real-world severity is deployment-dependent. In environments running CoreDNS with the debug directive active, the panic is not recovered and the process terminates, elevating the effective availability impact from partial to complete - the CVSS base score understates this scenario. In Kubernetes clusters, CoreDNS is the exclusive in-cluster DNS resolver; crashing it via repeated queries would deny all DNS resolution to all workloads, making this a high-impact denial-of-service in that context. The attack requires no authentication (PR:N) and no interaction (UI:N) and can be triggered with a single valid DNS query of minimal complexity (AC:L once the matching rule is deployed). No KEV listing and no public exploit have been identified at time of analysis; EPSS data was not provided. The risk is therefore credible but currently theoretical - real-world priority should be elevated for any Kubernetes deployment where the rewrite plugin is configured with edns0 revert rules. |
| Exploit ScenarioDerived | An attacker with network access to a CoreDNS instance that has an edns0 rewrite revert rule configured sends a single standard DNS A query (no OPT record required) for a domain matching the rule's pattern. CoreDNS rewrites the request, forwards it to a downstream handler, and the handler returns a response without an OPT record; during response post-processing, the ResponseReverter dereferences a nil pointer and panics. In a Kubernetes cluster with debug mode enabled, CoreDNS terminates, the pod enters a crash loop, and all workloads in the cluster lose DNS resolution until the pod recovers. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 16, 2026
Nil pointer dereference in CoreDNS prior to 1.14.5 allows remote unauthenticated attackers to crash or degrade the DNS server by sending a single ordinary DNS query. The rewrite plugin's edns0 response rules dereference the result of IsEdns0() without a nil check; when a downstream plugin returns a response lacking an OPT record, the ResponseReverter panics, returning SERVFAIL in default deployments or terminating the CoreDNS process entirely when the debug directive is active. No public exploit code has been identified and the issue is fixed in v1.14.5.
RemediationAI
Upgrade CoreDNS to version 1.14.5, which contains the nil-guard fix introduced in commit fc447d0658b093edc8cd29a6b171216a44a644c2 via PR #8190; the release is at https://github.com/coredns/coredns/releases/tag/v1.14.5. If an immediate upgrade is not feasible, remove the revert flag from any edns0 rewrite rules in the Corefile (e.g., change 'rewrite edns0 local set 0xffee 0xabcdef revert' to the same rule without 'revert'); note that this changes behavior - EDNS0 options added during request rewriting will no longer be stripped from responses, which may affect downstream clients expecting clean responses. As a secondary measure, removing the debug directive from the Corefile (if present) limits the worst-case outcome from process termination to SERVFAIL responses, buying time without fully eliminating the vulnerability.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CoreDNS (cpe:2.3:a:coredns:coredns) is a Go-based DNS server that serves as the default cluster DNS resolver in Kubernetes. The vulnerability is rooted in CWE-476 (Null Pointer Dereference) and resides in plugin/rewrite/edns0.go within the edns0SetResponseRule and edns0ReplaceResponseRule[T] response rule implementations. Both methods invoke res.IsEdns0(), which returns a *dns.OPT pointer, and immediately dereference that pointer without verifying it is non-nil. When a downstream plugin in the CoreDNS chain produces a DNS response that omits the OPT (EDNS0 extension) record - a valid and common response format - the returned pointer is nil, triggering a Go nil dereference panic. The panic propagates through ResponseReverter in plugin/rewrite/reverter.go, which is invoked during response post-processing when the revert flag is set on an edns0 rewrite rule. The fix in PR #8190 (commit fc447d0658b093edc8cd29a6b171216a44a644c2) inserts explicit nil guards immediately after both IsEdns0() calls, aborting the revert operation cleanly when no OPT record is present.
Know when Coredns gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L
DNS is network-accessible with no auth or interaction required; A:L reflects the default SERVFAIL outcome, with crash only when non-default debug directive is active.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
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.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
A null pointer dereference occurs when a program attempts to access memory through a pointer that has been set to NULL (address 0x0).
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
Memory-exhaustion denial of service in CoreDNS prior to 1.14.7 lets a remote unauthenticated attacker terminate the serv
Coredns versions up to 1.14.2 contains a vulnerability that allows attackers to crash the DNS server by sending speciall
CoreDNS versions prior to 1.14.2 allow authenticated attackers to bypass DNS access controls through a Time-of-Check Tim
Unauthenticated DNS UPDATE injection through CoreDNS's encrypted and gRPC listeners lets a remote client smuggle RFC 213
Remote denial of service in CoreDNS versions prior to 1.14.4 allows an unauthenticated attacker to crash the DNS server
A denial of service vulnerability in versions (CVSS 7.5). High severity vulnerability requiring prompt remediation. Vend
CoreDNS is a DNS server that chains plugins. Prior to version 1.14.0, multiple CoreDNS server implementations (gRPC, HTT
Unhandled Go runtime panic in CoreDNS 1.9.4 through 1.14.4 allows a network-reachable DNS client with AXFR permission to
EUVD-2026-45020
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB