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
4DescriptionCVE.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.
AnalysisAI
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.
Technical ContextAI
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.
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.
More in Kubernetes
View allA critical vulnerability in Kubernetes ingress-nginx controller allows unauthenticated attackers with pod network access
Credential-harvesting malware compromised 84 versions of 42 TanStack npm packages on 2026-05-11 via chained GitHub Actio
Kubernetes ingress-nginx contains a configuration injection vulnerability via the mirror-target and mirror-host Ingress
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-url` Ingres
A security issue was discovered in ingress-nginx https://github.com/kubernetes/ingress-nginx where the `auth-tls-match-c
Kubernetes API server in all versions allow an attacker who is able to create a ClusterIP service and set the spec.exter
A security issue was discovered in Kubernetes where a user that can create pods on Windows nodes may be able to escalate
Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes. Rated critical severity (CVSS 9.9), this vulne
Unauthenticated remote attackers can trigger complete database overwrites, server-side file reads, and SSRF attacks agai
The Kubernetes integration in GitLab Enterprise Edition 11.x before 11.2.8, 11.3.x before 11.3.9, and 11.4.x before 11.4
Fluentd configuration injection in the kube-logging Logging operator before 6.6.0 allows a namespace-scoped user who can
Kyverno Kubernetes policy engine prior to 1.x has a privilege escalation vulnerability (CVSS 9.9) allowing policy bypass
Same weakness CWE-248 – Uncaught Exception
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-45018