CVE-2026-32934
CoreDNS' DoQ worker pool does not bound stream backlog
Impact
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the DNS-over-QUIC (DoQ) server can be driven into unbounded goroutine and memory growth by a remote client that opens many QUIC streams and sends only 1 byte per stream. When the worker pool is full, CoreDNS still spawns a goroutine per accepted stream to wait for a worker token. Additionally, active workers block indefinitely in io.ReadFull() with no per-stream read deadline, allowing an attacker to pin all workers by sending a single byte so the read blocks waiting for the second byte of the DoQ length prefix. This enables an unauthenticated remote attacker to cause memory exhaustion and OOM-kill. This issue has been fixed in version 1.14.3. No known workarounds exist.
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| go | github.com/coredns/coredns | < 1.14.3 | 1.14.3 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Coredns.Io | Coredns | before 1.14.3 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/advisories/GHSA-2wpx-qpw2-g5h5
- https://github.com/coredns/coredns/security/advisories/GHSA-2wpx-qpw2-g5h5
- https://github.com/coredns/coredns/security/advisories/GHSA-cvx7-x8pj-x2gw
- https://github.com/coredns/coredns/releases/tag/v1.14.3
- https://nvd.nist.gov/vuln/detail/CVE-2026-32934