Executive brief
CoreDNS is a widely used DNS server that translates human-readable domain names into IP addresses. A vulnerability in its 'proxyproto' plugin allows a remote attacker to crash the server by sending a single, specially crafted 28-byte network packet. This results in a complete service outage, preventing users and applications from resolving domain names until the server is manually restarted or recovered.
Technical details
A NULL pointer dereference exists in the proxyproto plugin of CoreDNS when handling PROXY v2 headers over UDP. Specifically, in `plugin/pkg/proxyproto/proxyproto.go`, the `PacketConn.ReadFrom` function fails to properly validate the return values from `parseProxyProtocol`. When a malformed PROXY v2 header (e.g., specifying a non-UDP transport family like 0x11) is received, the parser returns a nil address and an error. The code subsequently attempts to call `.String()` on this nil address object during a logging operation before the standard recovery middleware can intercept the panic. This results in a process exit (SIGSEGV). An unauthenticated remote attacker can trigger this with a single 28-byte UDP packet. The issue is resolved in version 1.14.4.
Affected products
- CoreDNS CoreDNS < 1.14.4
Timeline
- 2026-05-24: other: Initial vulnerability report
- 2026-06-08: patched: Fix merged into master branch
- 2026-06-09: advisory: Version 1.14.4 released
- 2026-07-16: disclosed: CVE-2026-62309 published