Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconIdentify CoreDNS instance with AXFR permitted
-
DeliveryConfirm k8s_external plugin active on target zone
-
ExploitCraft AXFR DNS request for that zone
-
InstallEmpty record batch generated from portless headless service
-
C2Unchecked records[0] index panics Go runtime
-
ExecuteCoreDNS process crashes
-
ImpactKubernetes cluster DNS unavailable until pod restart
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A10:2025 - Mishandling of Exceptional Conditions
ASVS 5.0
V16 - Security Logging and Error Handling Exception handling completeness
|
| Exploitation Conditions | Three conditions must simultaneously hold: (1) CoreDNS must be configured with the k8s_external plugin specifically handling headless-service zone transfers - this is a non-default, operator-configured deployment mode; (2) the Kubernetes cluster must contain at least one headless service endpoint with no declared ports, which causes plugin/kubernetes/object/endpoint.go to generate Port: -1 internally; and (3) the attacker must have AXFR access permitted by the CoreDNS transfer plugin ACL from their network location - AXFR is not open by default and typically restricted to trusted secondaries. Exploitation is limited by: the AXFR ACL requirement (eliminates unauthenticated internet-facing exploitation in default configurations), the k8s_external plugin not being universally deployed, and the requirement for a specific Kubernetes resource state. Standard A, AAAA, and SRV queries do not traverse this code path. |
| Impact | The official CVSS 3.1 score of 3.7 (Low) with vector AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:L accurately reflects a remotely triggerable but conditionally gated denial of service. AC:H captures the multi-condition prerequisite: k8s_external must be deployed, a portless headless service must exist in Kubernetes, and AXFR must be permitted from the attacker's source. EPSS data is absent from the input and cannot be assessed. CoreDNS is not listed in CISA KEV and no public exploit code has been identified, though the fix commit and advisory are publicly accessible. Despite the low base score, operational impact in a Kubernetes cluster is disproportionate - a CoreDNS panic disrupts all pod-to-pod DNS resolution until the process is restarted. Environments running k8s_external with any portless headless service should treat this as an elevated operational risk relative to the CVSS score alone. Environments not using the k8s_external plugin are not affected regardless of CoreDNS version. |
| Exploit ScenarioDerived | A network client permitted to send AXFR requests to a CoreDNS instance sends a zone transfer request for a zone managed by the k8s_external plugin. If the Kubernetes cluster contains any headless service with no declared ports - even an unused or test service - the transfer plugin encounters an empty DNS record batch and panics on the unchecked records[0] access, immediately crashing the CoreDNS process. In a Kubernetes cluster, this causes all pod DNS resolution to fail until Kubernetes restarts the CoreDNS pod. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Jul 16, 2026
Unhandled Go runtime panic in CoreDNS 1.9.4 through 1.14.4 allows a network-reachable DNS client with AXFR permission to crash the CoreDNS process via a zone transfer request, causing a denial of service against cluster DNS. The crash path is triggered only when the k8s_external plugin is configured for headless-service zone transfers and Kubernetes contains a headless service with no declared ports - a condition that causes an empty record batch to be forwarded to plugin/transfer/transfer.go, where an unchecked index access (records[0]) panics the Go runtime. No public exploit identified at time of analysis; the vendor fix is confirmed in v1.14.5.
RemediationAI
Upgrade CoreDNS to version 1.14.5, confirmed fixed per the vendor release at https://github.com/coredns/coredns/releases/tag/v1.14.5 and fix commit ab318db7b4a3a19273852ed627f54888198c8efb. If immediate upgrade is not possible, two compensating controls exist: (1) Restrict AXFR permissions in the CoreDNS transfer plugin configuration to only trusted sources - this removes the external attack surface but may break legitimate zone-transfer consumers such as secondary DNS servers or monitoring tools; (2) Audit Kubernetes headless services and ensure all declare at least one port - this eliminates the triggering Kubernetes state but cannot be enforced reliably in dynamic environments where new workloads may introduce portless services. The upstream fix PR is at https://github.com/coredns/coredns/pull/8207.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in go, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
CoreDNS is a Go-based DNS server that serves as the default cluster DNS in most Kubernetes deployments. The vulnerability arises from a missing bounds check across three plugin layers: plugin/kubernetes/object/endpoint.go synthesizes Port: -1 for Kubernetes headless service endpoints that declare no ports; plugin/k8s_external/msg_to_dns.go skips such services during DNS record construction, emitting an empty []dns.RR slice into the transfer channel; plugin/k8s_external/transfer.go forwards that empty batch without sanitization; and plugin/transfer/transfer.go dereferences records[0] before verifying the slice is non-empty, triggering a Go index-out-of-bounds panic. CWE-248 (Uncaught Exception) is the root cause class - the runtime panic is unrecovered. The fix (PR #8207, commit ab318db) inserts a single guard (if len(records) == 0 { continue }) at the indexing site. Affected CPE: cpe:2.3:a:coredns:coredns:*:*:*:*:*:*:*:* versions 1.9.4 through 1.14.4.
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:H/PR:N/UI:N/S:U/C:N/I:N/A:L
AXFR request is network-delivered with no auth, AC:H reflects multi-condition prerequisite; A:L as Kubernetes restarts CoreDNS pod; no confidentiality or integrity impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
CoreDNS is a DNS server written in Go. From 1.9.4 until 1.14.5, a network DNS client allowed to request AXFR for a CoreDNS zone can trigger a panic when CoreDNS is configured with k8s_external headless-service zone transfers and Kubernetes contains a headless service endpoint with no declared ports; plugin/kubernetes/object/endpoint.go creates Port: -1, plugin/k8s_external/msg_to_dns.go skips that service, plugin/k8s_external/transfer.go sends an empty []dns.RR batch, and plugin/transfer/transfer.go indexes records[0] without checking the batch is non-empty. 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
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
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
Nil pointer dereference in CoreDNS prior to 1.14.5 allows remote unauthenticated attackers to crash or degrade the DNS s
EUVD-2026-45018
GHSA-74w3-63xv-x9mv
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB