Podatność w CoreDNS (wersje przed 1.14.4) pozwala nieuwierzytelnionemu napastnikowi zdalnie wywołać crash procesu DNS poprzez wysłanie pojedynczego pakietu UDP o rozmiarze 28 bajtów. Jest groźna, ponieważ prowadzi do całkowitej niedostępności serwera DNS bez jakiejkolwiek autoryzacji.
▸ Pokaż oryginał (EN)
CoreDNS is a DNS server written in Go. Prior to 1.14.4, a single 28-byte UDP datagram can crash the CoreDNS process when the proxyproto plugin is enabled because plugin/pkg/proxyproto/proxyproto.go PacketConn.ReadFrom handles a PROXY v2 header with non-UDP transport such as family byte 0x11, reassigns addr from a nil readFrom result after parseProxyProtocol errors, and calls addr.String() in the warning log before ServeDNS recovery applies. This issue is fixed in version 1.14.4.
Problem występuje w pluginie proxyproto, konkretnie w metodzie PacketConn.ReadFrom w pliku plugin/pkg/proxyproto/proxyproto.go. Gdy napastnik prześle nagłówek PROXY w wersji 2 z nieprawidłowym typem transportu (np. bajt rodziny 0x11, czyli non-UDP), funkcja parseProxyProtocol zwraca błąd, a zmienna addr przyjmuje wartość nil. Następnie, przed tym jak mechanizm odzyskiwania ServeDNS zdąży zadziałać, kod wywołuje metodę addr.String() w logu ostrzeżeń, co powoduje dereferencję wskaźnika nil (CWE-476) i natychmiastowe zatrzymanie procesu.
Atakujący może spowodować całkowitą niedostępność (Denial of Service) serwera CoreDNS, przerywając rozwiązywanie nazw DNS dla wszystkich obsługiwanych klientów. Atak jest możliwy do przeprowadzenia bez uwierzytelnienia, zdalnie i przy minimalnym nakładzie zasobów.
Należy zaktualizować CoreDNS do wersji 1.14.4, w której problem został naprawiony. Jako obejście tymczasowe można wyłączyć plugin proxyproto, jeśli nie jest wymagany w danym środowisku.
CoreDNS (coredns.io) we wszystkich wersjach przed 1.14.4, przy włączonym pluginie proxyproto.
Poprawka dostępna w commicie 60a439dd4febfcd78e3779e952fe3fbf3c16bb1f oraz opisana w security advisory GHSA-9rvv-m5g5-wc8r. Wersja 1.14.4 została wydana 2026-07-16.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:HCoredns.io Coredns
APPCoredns.Io< 1.14.4
Powiązane podatności
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the transfer plugin can select the w...
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the DNS-over-QUIC (DoQ) server can b...
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the DNS-over-HTTPS (DoH) GET path ac...
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the tsig plugin can be bypassed on n...
CoreDNS is a DNS server written in Go. In versions prior to 1.14.3, the gRPC, QUIC, DoH, and DoH3 transport im...