Skip to content
Heist/ feed
Back to feed
High

CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison

Type: advisorySources: OSV

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.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-33489
Confirmed fixed CVEs
Not specified
Updated in this feed
6 Nov 2026, 02:16 UTC · Revision 1

Source evidence

CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison

core-osv · Original source

Published 5 May 2026, 19:13 UTC

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.

osv:CVE-2026-33489
Complete source record
{
  "id": "b0f81fc3c99cac830cc8460d6152174d55dd1c8753899d2ce0b04116c9198857",
  "url": "https://osv.dev/vulnerability/CVE-2026-33489",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CoreDNS transfer plugin subzone ACL bypass via lexicographic zone comparison",
    "summary": "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.",
    "evidence": "osv:CVE-2026-33489",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-33489",
      "aliases": [
        "CVE-2026-33489",
        "GHSA-h8mm-c463-wjq3",
        "GO-2026-5417"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/coredns/coredns",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "17fceec6d93fd1dde5ba6888c363f131ff6d647f"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.14.3"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "17fceec6d93fd1dde5ba6888c363f131ff6d647f"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.14.3"
                  },
                  {
                    "cpe": "cpe:2.3:a:coredns.io:coredns:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.14.3"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.14.2",
            "v1.14.1",
            "v1.14.0",
            "v1.13.2",
            "v1.13.1",
            "v1.13.0",
            "v1.12.4",
            "v1.12.3",
            "v1.12.2",
            "v1.12.1",
            "v1.12.0",
            "v1.11.4",
            "v1.11.3",
            "v1.11.1",
            "v1.11.0",
            "v1.10.1",
            "v1.10.0",
            "v1.9.4",
            "v1.9.3",
            "v1.9.2",
            "v1.9.1",
            "v1.9.0",
            "v1.8.7",
            "v1.8.6",
            "v1.8.5",
            "v1.8.4",
            "v1.8.3",
            "v1.8.2",
            "v1.8.1",
            "v1.8.0",
            "v1.7.1",
            "v1.7.0",
            "v1.6.9",
            "v1.6.8",
            "v1.6.7",
            "v1.6.6",
            "v1.6.5",
            "v1.6.4",
            "v1.6.3",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.2",
            "v1.5.1",
            "v1.5.0",
            "v1.4.0",
            "v1.3.1",
            "v1.3.0",
            "v1.2.6",
            "v1.2.5",
            "v1.2.4",
            "v1.2.3",
            "v1.2.2",
            "v1.2.1",
            "v1.2.0",
            "v1.1.4",
            "v1.1.3",
            "v1.1.2",
            "v1.1.1",
            "v1.1.0",
            "v1.0.6",
            "v1.0.5",
            "v1.0.3",
            "v1.0.2",
            "v1.0.1",
            "v1.0.0",
            "v0.9.10",
            "v0.9.9",
            "v011",
            "v010",
            "v009",
            "v008",
            "v007",
            "v006",
            "v005",
            "v004",
            "v003",
            "v002",
            "v001"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-33489.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:46.038512959Z",
      "provider": "osv",
      "references": [
        "https://github.com/coredns/coredns/releases/tag/v1.14.3",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33489.json",
        "https://github.com/coredns/coredns/security/advisories/GHSA-h8mm-c463-wjq3",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-33489"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-863"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/33xxx/CVE-2026-33489.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-33489",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 514202,
  "published_at": "2026-05-05T19:13:48.461+00:00"
}