CVE-2025-47950
High · 7.5CoreDNS Vulnerable to DoQ Memory Exhaustion via Stream Amplification
CVSS
7.5
EPSS
1.2%
Published
Jun 6, 2025
CISA due date
—
Cloudanix analysis
Attackers can crash DNS servers by flooding them with too many simultaneous connections, causing outages until the servers are updated or restarted.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Trivial
- Impact
- Denial Of Service
- Component
- Network Service
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The CoreDNS DNS-over-QUIC server spawns an unbounded goroutine per incoming stream with no concurrency limits, causing uncontrolled memory growth that leads to OOM crashes.
Why it matters to the business
Produces DNS service outages, especially in containerized or memory-constrained environments, resulting in application downtime and operational disruption across dependent systems.
How an attack unfolds
A remote unauthenticated attacker opens a large number of QUIC streams against the DoQ listener, exhausting memory until the process crashes; no named threat actors or ransomware campaigns are associated with this issue.
How to fix it
Upgrade ruby2.7 on Ubuntu 20.04 LTS to 2.7.0-5ubuntu1.12 and ruby2.3 on Ubuntu 16.04 Pro to 2.3.1-2~ubuntu16.04.16+esm8; apply the updates and restart affected services.
How to confirm the fix worked
Confirm installed package versions match the listed fixed releases and verify that stream or goroutine limits are now enforced under load testing.
Typical attack path
- Connect to the exposed DNS-over-QUIC endpoint
- Rapidly open thousands of concurrent streams
- Continue stream creation until memory exhaustion triggers OOM kill or crash
How to detect it
Review CoreDNS logs for sudden spikes in QUIC stream counts or goroutine creation, and monitor system logs for OOM killer events targeting the DNS process.
What your security team should do
- Apply the published package updates without delay given the 507 days since disclosure
- Restrict exposure of DoQ ports to trusted clients only
- Implement container memory limits and monitoring to contain future DoS effects
The record
A **Denial of Service (DoS)** vulnerability was discovered in the CoreDNS DNS-over-QUIC (DoQ) server implementation. The server previously created a new goroutine for every incoming QUIC stream without imposing any limits on the number of concurrent streams or goroutines. A remote, unauthenticated attacker could open a large number of streams, leading to uncontrolled memory consumption and eventually causing an Out Of Memory (OOM) crash — especially in containerized or memory-constrained environments.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Go | github.com/coredns/coredns | 0 | 1.12.2 |
| Chainguard | cloudflared | 0 | 0 |
| Chainguard | coredns | 0 | 1.12.2-r0 |
| Chainguard | coredns-compat | 0 | 1.12.2-r0 |
| Chainguard | coredns-fips | 0 | 1.12.2-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-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-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-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-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-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-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-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-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-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-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-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-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 | juicefs-1.2 | 0 | 1.2.4-r1 |
| Chainguard | juicefs-1.2-compat | 0 | 1.2.4-r1 |
| Chainguard | juicefs-1.3 | 0 | 1.3.0-r2 |
| Chainguard | juicefs-1.3-compat | 0 | 1.3.0-r2 |
| Chainguard | kubernetes-dns-node-cache | 0 | 1.26.7-r0 |
| Chainguard | kubernetes-dns-node-cache-fips | 0 | 1.26.7-r1 |
| Chainguard | kuma-coredns | 0 | 1.12.2-r0 |
| Wolfi | cloudflared | 0 | 0 |
| Wolfi | coredns | 0 | 1.12.2-r0 |
| Wolfi | coredns-compat | 0 | 1.12.2-r0 |
| Wolfi | juicefs-1.3 | 0 | 1.3.0-r2 |
| Wolfi | juicefs-1.3-compat | 0 | 1.3.0-r2 |
| Wolfi | kubernetes-dns-node-cache | 0 | 1.26.7-r0 |
| Wolfi | kuma-coredns | 0 | 1.12.2-r0 |
| openSUSE:Tumbleweed | govulncheck-vulndb | 0 | 0.0.20250612T141001-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-58063 CoreDNS is a DNS server that chains plugins. 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-29786 Expr is an expression language and expression evaluation for Go. Also affects coredns
- CVE-2024-51744 golang-jwt is a Go implementation of JSON Web Tokens. Also affects coredns