Логотип exploitDog
Консоль
Логотип exploitDog

exploitDog

github логотип

GHSA-h8mm-c463-wjq3

Опубликовано: 28 апр. 2026
Источник: github
Github: Прошло ревью
CVSS4: 8.2
CVSS3: 7.5

Описание

CoreDNS' transfer stanza selection uses lexicographic compare (subzone ACL bypass)

Summary

CoreDNS' transfer plugin can select the wrong ACL stanza when both a parent zone and a more-specific subzone are configured. A permissive parent-zone transfer rule can override a restrictive subzone rule (name-dependent), allowing an unauthorized client to perform AXFR/IXFR for the subzone and retrieve its zone contents.

Details

In plugin/transfer/transfer.go, stanza selection is implemented by longestMatch(), which is documented as "longest zone match wins", but it actually chooses the winner via a lexicographic string comparison:

  • zone := "" // longest zone match wins (plugin/transfer/transfer.go)
  • if z > zone { zone = z; x = xfr } (plugin/transfer/transfer.go)

So, a parent zone like example.org. can beat a child zone like a.example.org. purely due to lexicographic ordering ("example.org." > "a.example.org."), even though the child zone is the longer/more specific suffix match. The bypass is data-dependent (some child labels will win, some will lose), making it operationally non-intuitive.

PoC

  1. Adjust COREDNS_BIN in the PoC to point at right path (see the top-level const definitions for tunables as well)
  2. Run python3 ./acl-repro.py
  3. Expected output: *** Baseline (only subzone transfer rule) *** axfr a.example.org.: rcode=5 ancount=0 (expected REFUSED=5)

*** Candidate (add permissive parent transfer rule) *** axfr a.example.org.: rcode=0 ancount=5 (expected NOERROR=0 with ancount>0)

*** OK *** Subzone transfer ACL bypass reproduced: adding a permissive parent-zone stanza can override a stricter child-zone stanza due to lexicographic zone selection.

Impact

Unauthorized zone transfer can expose full zone contents to a remote network client that was intended to be denied by a subzone-specific transfer policy.

Пакеты

Наименование

github.com/coredns/coredns

go
Затронутые версииВерсия исправления

< 1.14.3

1.14.3

EPSS

Процентиль: 31%
0.00388
Низкий

8.2 High

CVSS4

7.5 High

CVSS3

Дефекты

CWE-862
CWE-863

Связанные уязвимости

CVSS3: 6.5
redhat
3 месяца назад

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.

CVSS3: 7.5
nvd
3 месяца назад

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.

msrc
3 месяца назад

CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison

CVSS3: 7.5
debian
3 месяца назад

CoreDNS is a DNS server that chains plugins. In versions prior to 1.14 ...

suse-cvrf
3 месяца назад

Security update for coredns

EPSS

Процентиль: 31%
0.00388
Низкий

8.2 High

CVSS4

7.5 High

CVSS3

Дефекты

CWE-862
CWE-863