The vulnerability stems from a lack of resource limiting in CoreDNS's gRPC, HTTPS, and HTTP/3 servers, which allows an unauthenticated remote attacker to cause a denial of service through memory exhaustion. The analysis of the provided patch (0d8cbb1a6bcb6bc9c1a489865278b8725fa20812) confirms this.
gRPC Server DoS: The dnsserver.(*ServergRPC).Serve function was vulnerable because it initialized the gRPC server without any connection or stream limits. The patch applies limits using netutil.LimitListener for connections and grpc.MaxConcurrentStreams for streams. Furthermore, the dnsserver.(*ServergRPC).Query function was vulnerable to oversized messages, as it did not validate the message size before processing. The patch adds a crucial size check to prevent this.
HTTPS Server DoS: The dnsserver.(*ServerHTTPS).Serve function was vulnerable as it did not limit the number of concurrent connections. The patch integrates netutil.LimitListener to enforce a connection limit, preventing connection exhaustion attacks.
HTTP/3 Server DoS: The dnsserver.NewServerHTTPS3 function, which sets up the HTTP/3 server, failed to configure a limit on concurrent QUIC streams. The patch rectifies this by setting the MaxIncomingStreams and MaxIncomingUniStreams properties on the QUIC transport configuration, mitigating the risk of stream-based resource exhaustion.
In summary, the identified functions are the precise locations where resource limits were absent, making them the entry points for the denial-of-service attacks described. The patch systematically adds the necessary checks and configurations to harden these servers.
dnsserver.(*ServergRPC).Querycore/dnsserver/server_grpc.go
dnsserver.(*ServergRPC).Servecore/dnsserver/server_grpc.go
dnsserver.(*ServerHTTPS).Servecore/dnsserver/server_https.go
dnsserver.NewServerHTTPS3core/dnsserver/server_https3.go
| Package Name | Ecosystem | Vulnerable Versions | First Patched Version |
|---|---|---|---|
| github.com/coredns/coredns | go | < 1.14.0 | 1.14.0 |
A Semantic Attack on Google Gemini - Read the Latest Research