CVE-2026-33489: CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison

Published Apr 28, 2026
·
Updated

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 COREDNSBIN 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.

Other sources

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.

MITRE

CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison

Microsoft

Affected Software

3 affected componentsFixes available
go/github.com/coredns/coredns<1.14.3
1.14.3
coredns.io CoreDNS<1.14.3
Microsoft azl3 coredns 1.11.4-15

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade go/github.com/coredns/coredns to a version that resolves this vulnerability.

    Fixed in 1.14.3
  2. Upgrade

    Upgrade coredns/transfer to a version that resolves this vulnerability.

    Fixed in 1.14.3

Event History

Apr 28, 2026
Advisory Published
via GitHub·10:44 PM
Data Sourced
via GitHub·10:44 PM
DescriptionSeverityWeaknessAffected Software
May 5, 2026
CVE Published
via MITRE·07:13 PM
Data Sourced
via MITRE·07:13 PM
DescriptionWeakness
Data Sourced
via NVD·08:16 PM
DescriptionSeverityWeaknessAffected Software
May 7, 2026
Data Sourced
via Microsoft·08:02 AM
DescriptionSeverityWeakness
Data Sourced
via Microsoft·08:02 AM
Affected Software
Updated
via Microsoft·08:02 AM
DescriptionSeverity

Frequently Asked Questions

1

What is the severity of CVE-2026-33489?

CVE-2026-33489 has been classified as a high-severity vulnerability due to its potential to allow unauthorized AXFR/IXFR transfers.

2

How do I fix CVE-2026-33489?

To mitigate CVE-2026-33489, upgrade CoreDNS to version 1.14.3 or later to address the ACL misconfiguration issue.

3

Who is affected by CVE-2026-33489?

CoreDNS users with parent and subzone configurations that have conflicting ACL rules are affected by CVE-2026-33489.

4

What does CVE-2026-33489 exploit?

CVE-2026-33489 exploits a misconfiguration in CoreDNS' transfer plugin that improperly selects ACL stanzas between parent and subzones.

5

Can CVE-2026-33489 lead to data exposure?

Yes, CVE-2026-33489 can lead to unauthorized access to zone transfers, potentially exposing sensitive DNS data.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203