Description
CoreDNS is a DNS server that chains plugins. In versions prior to 1.14.3, the transfer plugin can select the wrong ACL stanza when both a parent zone and a more-specific subzone are configured. The longestMatch() function in plugin/transfer/transfer.go uses a lexicographic string comparison instead of an actual longest-suffix match to select the winning zone. As a result, a permissive parent-zone transfer rule can override a restrictive subzone rule depending on zone name ordering (e.g., "example.org." > "a.example.org." lexicographically). This allows an unauthorized remote client to perform AXFR/IXFR for the subzone and retrieve its full zone contents. This issue has been fixed in version 1.14.3.
Problem types
CWE-863: Incorrect Authorization
Product status
References
github.com/...oredns/security/advisories/GHSA-h8mm-c463-wjq3
github.com/...oredns/security/advisories/GHSA-h8mm-c463-wjq3
github.com/coredns/coredns/releases/tag/v1.14.3