CVE-2025-58063
High · 7.1CVSS
7.1
EPSS
0.5%
Published
Sep 9, 2025
CISA due date
—
Cloudanix analysis
A coding error in CoreDNS can let an attacker make DNS answers for some services stay in memory far too long, breaking name resolution and taking those services offline.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The TTL() function in plugin/etcd/etcd.go casts etcd lease IDs (64-bit integers) to uint32 and treats the resulting values as DNS TTLs; large lease IDs produce extremely large TTLs that pin cache entries and prevent refresh or replacement of affected DNS records.
Why it matters to the business
Organizations running CoreDNS with the etcd plugin risk prolonged DNS resolution failures for services that rely on dynamic etcd-backed records, causing application outages and operational disruption until the affected instances are upgraded.
How an attack unfolds
An attacker with the ability to influence etcd lease creation supplies leases whose IDs exceed 32 bits; CoreDNS incorrectly interprets those IDs as TTL values, resulting in cache entries that remain valid for an impractically long time and block legitimate record updates or failover.
How to fix it
Upgrade coredns/coredns to the fixed commit f32329577fd5e3fe19908f8a9ba5c76aafb45bf6 (version 1.12.4) or later; rebuild and redeploy all affected CoreDNS instances; verify that the etcd plugin no longer casts lease IDs to uint32 for TTL calculations.
How to confirm the fix worked
Confirm the running binary reports version 1.12.4 or newer; inspect plugin/etcd/etcd.go for the corrected TTL handling; perform controlled lease creation followed by DNS queries and verify that returned TTL values remain within expected bounds.
Typical attack path
- Obtain write access to the etcd cluster used by CoreDNS
- Create or renew leases that generate large 64-bit lease IDs
- Trigger DNS queries against CoreDNS instances using the etcd plugin
- Observe that the resulting cache entries receive excessively large TTLs and cannot be refreshed
How to detect it
Search CoreDNS request and cache logs for TTL values exceeding normal service lifetimes; correlate with etcd lease events that produce unusually large lease IDs; review audit logs for unexpected lease creation activity around the time of observed resolution failures.
What your security team should do
- Immediately schedule upgrade of all CoreDNS deployments using the etcd plugin to version 1.12.4
- Add CoreDNS version checks to continuous compliance scanning
- Review etcd access controls to limit lease creation privileges to trusted components only
- Monitor DNS cache hit rates and TTL distributions for anomalies until all instances are updated
The record
CoreDNS is a DNS server that chains plugins. Starting in version 1.2.0 and prior to version 1.12.4, the CoreDNS etcd plugin contains a TTL confusion vulnerability where lease IDs are incorrectly used as TTL values, enabling DNS cache pinning attacks. This effectively creates a DoS condition for DNS resolution of affected services. The `TTL()` function in `plugin/etcd/etcd.go` incorrectly casts etcd lease IDs (64-bit integers) to uint32 and uses them as TTL values. Large lease IDs become very large TTLs when cast to uint32. This enables cache pinning attacks. Version 1.12.4 contains a fix for the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/coredns/coredns | 1.2.0 | 1.12.4 |
| Chainguard | cloudflared | 0 | 2026.2.0-r0 |
| Chainguard | eks-distro-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-coredns-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-coredns-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-coredns-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-coredns-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-coredns-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-coredns-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-coredns-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-coredns-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-coredns-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-coredns-fips-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-coredns-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-coredns-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-fips-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-apiserver-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-apiserver-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-apiserver-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-apiserver-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-apiserver-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-apiserver-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-apiserver-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-controller-manager-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.32 | 0 | 1.32.28-r0 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-controller-manager-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-proxy-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-proxy-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-proxy-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-proxy-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-proxy-1.33 | 0 | 1.33.18-r0 |
| Chainguard | eks-distro-kube-proxy-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-proxy-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-proxy-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-proxy-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-proxy-fips-1.32 | 0 | 1.32.28-r0 |
| Chainguard | eks-distro-kube-proxy-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-proxy-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-scheduler-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-scheduler-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-scheduler-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-scheduler-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-scheduler-1.33 | 0 | 1.33.18-r0 |
| Chainguard | eks-distro-kube-scheduler-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.30 | 0 | 1.30.46-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kube-scheduler-fips-1.34 | 0 | 1.34.9-r1 |
| Chainguard | eks-distro-kubernetes-pause-1.29 | 0 | 1.29.53-r1 |
| Chainguard | eks-distro-kubernetes-pause-1.30 | 0 | 1.30.46-r0 |
| Chainguard | eks-distro-kubernetes-pause-1.31 | 0 | 1.31.35-r1 |
| Chainguard | eks-distro-kubernetes-pause-1.32 | 0 | 1.32.28-r1 |
| Chainguard | eks-distro-kubernetes-pause-1.33 | 0 | 1.33.18-r1 |
| Chainguard | eks-distro-kubernetes-pause-1.34 | 0 | 1.34.9-r1 |
| Chainguard | juicefs-1.2 | 0 | 1.2.4-r4 |
| Chainguard | juicefs-1.2-compat | 0 | 1.2.4-r4 |
| Chainguard | juicefs-1.3 | 0 | 1.3.0-r5 |
| Chainguard | juicefs-1.3-compat | 0 | 1.3.0-r5 |
| Chainguard | k8s_gateway | 0 | 1.6.1-r0 |
| Chainguard | k8s_gateway-compat | 0 | 1.6.0-r3 |
| Chainguard | k8s_gateway-fips | 0 | 1.6.1-r0 |
| Chainguard | k8s_gateway-fips-compat | 0 | 1.6.1-r0 |
| Chainguard | kubernetes-dns-node-cache | 0 | 1.26.5-r1 |
| Chainguard | kubernetes-dns-node-cache-fips | 0 | 1.26.5-r1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | govulncheck-vulndb | 0 | 0.0.20250918T182144-150000.1.107.1 |
| Wolfi | cloudflared | 0 | 2026.2.0-r0 |
| Wolfi | juicefs-1.3 | 0 | 1.3.0-r5 |
| Wolfi | juicefs-1.3-compat | 0 | 1.3.0-r5 |
| Wolfi | k8s_gateway | 0 | 1.6.1-r0 |
| Wolfi | k8s_gateway-compat | 0 | 1.6.0-r3 |
| Wolfi | kubernetes-dns-node-cache | 0 | 1.26.5-r1 |
| go | github.com/coredns/coredns | 1.2.0 | 1.12.4 |
| openSUSE:Leap 15.6 | govulncheck-vulndb | 0 | 0.0.20250918T182144-150000.1.107.1 |
| openSUSE:Leap 16.0 | coredns | 0 | 1.14.0-bp160.1.1 |
| openSUSE:Tumbleweed | coredns | 0 | 1.12.4-2.1 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250917T170349-1.1 |
Related vulnerabilities
- CVE-2025-68151 CoreDNS gRPC/HTTPS/HTTP3 servers lack resource limits, enabling DoS via unbounded… Also affects github.com/coredns/coredns
- CVE-2025-47950 CoreDNS Vulnerable to DoQ Memory Exhaustion via Stream Amplification Also affects github.com/coredns/coredns
- CVE-2026-34986 Go JOSE provides an implementation of the Javascript Object Signing and Encryption set of… Also affects cloudflared
- CVE-2024-53259 quic-go is an implementation of the QUIC protocol in Go. Also affects cloudflared
- CVE-2024-22189 quic-go is an implementation of the QUIC protocol in Go. Also affects cloudflared
- CVE-2023-48795 The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6… Also affects cloudflared
- CVE-2025-68156 Expr is an expression language and expression evaluation for Go. Also affects eks-distro-1.29
- CVE-2025-13281 A half-blind Server Side Request Forgery (SSRF) vulnerability exists in… Also affects eks-distro-1.29