Internet-Draft DNSSEC Wildcard Containment October 2026
Zhang, et al. Expires 30 April 2027 [Page]
Workgroup:
Network Working Group
Updates:
4035, 8198 (if approved)
Published:
Intended Status:
Standards Track
Expires:
Authors:
Q. Zhang
Palo Alto Networks
Z. Shen
Purdue University
I. Karim
The University of Texas at Dallas
E. Bertino
Purdue University
D. Liu
Palo Alto Networks
Z. Li
University of California, Irvine

Signer-Zone Containment for DNSSEC Wildcard Validation

Abstract

Validators for the DNS Security Extensions (DNSSEC) reconstruct the original owner name of a signed resource record set (RRset) using the RRSIG Labels field. This document updates RFC 4035 to make explicit how its existing signing-zone authority requirement applies to that reconstructed owner, and updates RFC 8198 to preserve the authenticated association between wildcard data, its original owner, and its signing zone during cache reuse. These clarifications prevent cryptographically correct signatures from being treated as authenticating wildcard sources outside the signing zone. They do not change DNS wildcard matching or synthesis rules, or DNS message formats.

Status of This Memo

This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.

Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.

Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."

This Internet-Draft will expire on 30 April 2027.

▲

Table of Contents

1. Introduction

Section 5.3.1 of [RFC4035] requires the RRSIG Signer's Name to identify the zone containing the RRset as a condition for a resolver to authenticate that RRset. Section 3.1.7 of [RFC4034] states the same authority requirement. The RRSIG Labels field allows a validator to reconstruct the original signed owner name using the algorithm in Section 5.3.2 of [RFC4035]; Section 5.3.3 also requires verification that wildcard expansion was applied properly.

The reconstructed owner can differ from the received owner, but the reconstruction algorithm does not explicitly compare it with the Signer's Name. Checking only the received owner's relationship to the Signer's Name therefore does not fully enforce the existing authority requirement. This document makes the corresponding check on the reconstructed owner explicit; successful cryptographic verification cannot establish authority outside the signing zone.

The DNSSECVerif study identified implementation failures at this boundary [DNSSECVerif]; public reports are summarized in Section 3.1. Reuse under Section 5.3 of [RFC8198] can extend their effects. This document also specifies which authenticated information must remain associated when reusing wildcard data. Both clarifications apply to each candidate RRSIG and preserve the distinction between authenticating a wildcard source and proving its applicability to a query.

The scope is limited to reconstructed-owner containment and its preservation during wildcard reuse. The wildcard rules in [RFC4592], including expansion over multiple labels, remain unchanged, as do denial-of-existence algorithms, trust-anchor processing, and DNSSEC algorithm policy.

For a signing-zone apex whose leftmost label is not an asterisk, the explicit containment check requires the RRSIG Labels value to be at least the number of non-root labels in that apex, in addition to the existing authority and upper-bound checks. The exact-name exception for an asterisk-named apex is described in Section 5.2; Appendix B gives the conditional count-based formulation.

2. Conventions and Terminology

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

DNS terminology follows [RFC9499]. Wildcard domain name, closest encloser, and source of synthesis have the meanings in [RFC4592]. This document uses the following notation for one candidate RRSIG and the RRset it covers:

O:
The received RRset owner name.
S:
The Signer's Name in the candidate RRSIG.
L:
The value of the candidate RRSIG Labels field.
N:
The number of non-root labels in O, including any label whose contents are an asterisk.
R:
The original owner name reconstructed from O and L by the algorithm in Section 5.3.2 of RFC 4035.

Name equality and subdomain comparisons use complete DNS labels and the case-insensitive rules in [RFC4343]. A name is a strict subdomain of another name if it has that name as a suffix of complete labels and has at least one additional label. The root name has zero non-root labels. A wildcard label is a label consisting of the single octet 0x2a; an asterisk within a longer label is not a wildcard label.

For clarity, the existing reconstruction yields R = O when L = N. When L is less than N, R consists of a wildcard label followed by the rightmost L labels of O; for L = 0 this yields the name "*.". L greater than N fails an existing validation check. Although L omits an original owner's leftmost wildcard label, N counts all non-root labels in the received owner.

3. Problem Description

Consider a signed child zone, child.example., and a received RRset at a.child.example. A candidate RRSIG names child.example. as S but sets L to 1. The reconstruction algorithm yields R = *.example. The child-zone key can sign the corresponding octets, but authority over child.example. does not confer authority over *.example. Treating that signature as authenticating the reconstructed owner would violate the existing signing-zone authority requirement.

By contrast, the same received owner with S = child.example. and L = 2 reconstructs *.child.example. and passes containment. That source can also synthesize an owner such as a.b.child.example. when the existing wildcard-applicability rules permit it. The containment check does not limit a wildcard to matching a single label.

A validator that checks only the received owner's relationship to S and verifies the signature can lose this distinction. If a cache then indexes the RRset as wildcard data at *.example., the child signature can be reused as if it authenticated data in the parent zone. Suitable denial-of-existence data used in a later synthesis does not repair the missing authorization for the wildcard source.

The check is also needed when an implementation considers multiple signatures. Validation of the RRset using one RRSIG does not authenticate a different RRSIG's Labels or Signer's Name. Using the validation result from one signature with the reconstruction metadata from another can recreate the same error.

3.1. Evidence from Deployed Resolvers

Public vendor reports document practical consequences of insufficient RRSIG Labels validation in deployed resolver software:

  • BIND 9: CVE-2026-11721 describes reconstruction of a wildcard name above an attacker-controlled zone, with potential cache poisoning when DNSSEC-based synthesis is enabled with synth-from-dnssec yes [BIND-11721].
  • Unbound: CVE-2026-44690 describes insufficient Labels validation combined with premature cache writes during aggressive NSEC processing. Its documented attack uses a delegated zone beneath an NSEC-signed parent to poison sibling-zone data. The reported fixes address Labels validation, cache-write ordering, and wildcard bailiwick checks [UNBOUND-44690].
  • PowerDNS Recursor: CVE-2026-52688 describes a DNSSEC wildcard-validation bypass caused by a crafted authoritative reply with too few RRSIG labels [PDNS-2026-10].
  • Knot Resolver: the 6.4.1 release notes document a correction for RRSIG Labels values below the label count of the RRSIG Signer's Name, affecting primarily the aggressive cache. That release entry gives no CVE identifier for this correction [KNOT-6.4.1].

The reported prerequisites and consequences differ across implementations. These reports motivate making the authority and cache-association checks explicit; they do not establish identical defects or conformance of the published fixes to all requirements in this document.

4. Updates to Validation and Wildcard Reuse

4.1. Update to RFC 4035: Reconstructed Owner Containment

To make the authority requirement in Section 5.3.1 of [RFC4035] explicit during owner reconstruction, add the following sentence to Section 5.3.2, immediately after the algorithm that calculates the owner name used in the signed data:

A validator MUST NOT use a candidate RRSIG to authenticate an RRset or a reconstructed wildcard source unless the reconstructed original owner is a strict subdomain of the Signer's Name or is equal to both the Signer's Name and the received RRset owner, with all comparisons performed on complete DNS labels under the case-insensitive rules of [RFC4343].

Existing key-authentication and zone-authority checks, including zone-cut rules and parent-side DS handling, continue to apply; name containment does not replace them. The containment check can precede cryptographic verification, whose success cannot override a failed check.

A failure rejects that candidate RRSIG, not other signatures covering the RRset. Alternative signatures and the final validation result remain governed by Section 5.4 of [RFC6840].

Equality permits exact-apex RRsets, including an asterisk-named apex. When R differs from O, R must lie strictly below S, excluding that apex as a source of synthesis; see Section 5.2.

4.2. Update to RFC 8198: Authenticated Wildcard Source

Append the following text to Section 5.3 of [RFC8198]:

Before a validator uses a cached RRset as a wildcard source for synthesis, it MUST establish that the source RRset data, the original owner name identifying that source, and the signing zone were authenticated together by successful validation of an RRSIG under RFC 4035 as updated by this document. The source owner name MUST be a strict subdomain of that signing zone's apex.

A successful validation result for an RRset MUST NOT be used to authenticate an original owner name or signing-zone association obtained solely from a different RRSIG that did not successfully validate. Each wildcard-source association used for synthesis MUST be justified by a successfully validated RRSIG for that association.

An implementation MUST preserve sufficient validated information to establish this association, or re-establish it by validation before use. It need not retain a particular cache representation or perform cryptographic verification on every cache hit. Information retained without the required association, including information retained across a software upgrade, MUST NOT be used for wildcard synthesis unless the association is established.

Authentication of a wildcard source means authenticating the RRset at its reconstructed original owner R, including the signing key's authority, signature validity, and the binding to signing zone S. This is distinct from accepting the received expanded answer at O when O differs from R. These requirements do not require successful validation of the complete incoming expanded response as a prerequisite for retaining independently authenticated source data. They also do not permit that source to answer a query without the applicable authenticated denial-of-existence proofs. When the cache lacks sufficient authenticated information for synthesis, the resolver follows the fallback to authoritative resolution specified in Section 5 of RFC 8198.

All other requirements of RFC 8198 continue to apply, including the required denial-of-existence proofs and restrictions at zone cuts. NSEC and NSEC3 processing continues to follow RFC 4035, [RFC5155], and their applicable updates. Existing TTL and signature-validity limits, including the changes in [RFC9077], are unchanged.

5. Compatibility and Deployment

5.1. Ordinary Names and Wildcard Expansion

Under Section 3.3.1 of [RFC4592], the closest encloser is an existing name in the selected zone, and the source of synthesis is its immediate asterisk child. A source used for synthesis therefore lies strictly below that zone's apex. The explicit check applies this existing authority boundary to the original owner recovered during DNSSEC validation.

For a received RRset with neither wildcard expansion nor a wildcard owner name, L = N and the reconstructed owner is unchanged. For a legitimate wildcard expansion, the source lies within the authenticating zone and below its apex. Neither case requires a change to the DNS wire format, authoritative data, or correctly generated signatures.

For example, if child.example. does not exist and example. is the closest encloser, *.example. can synthesize a.child.example. A signature with S = example. and L = 1 reconstructs that source and passes containment. The failing example in Section 3 instead names child.example. as the signer of the same reconstructed source. Rejecting that candidate signature does not prohibit the legitimate parent-zone expansion.

Compatibility here concerns correctly signed, standards-conforming wildcard synthesis. It does not require a validating resolver and a nonvalidating resolver to return the same result for an authentication-invalid response; DNSSEC validation-failure handling continues to follow RFC 4035.

The checks apply whether or not aggressive use of DNSSEC-validated caches is enabled. Disabling aggressive wildcard synthesis alone does not implement the update to RFC 4035. A validator that stores wildcard-source associations in more than one cache or processing path needs to enforce the association requirement in each path that can later supply a source for synthesis.

5.2. Asterisk-Named Zone Apexes

Section 4.1 of [RFC4592] permits a zone apex whose leftmost label is an asterisk. For example, the zone *.example. can contain an RRset at its apex. Its RRSIG can have S = *.example. and L = 1. With O = *.example., reconstruction yields R = O = S. This exact-name case satisfies the containment requirement. Although L is less than N, R equals O; the label-count inequality alone does not distinguish this exact-name case from expansion. This example addresses the explicit containment check, rather than constituting a complete validation procedure.

That apex is not a wildcard source for synthesis. A received owner x.*.example. with the same S and L would reconstruct the same R but would have R different from O; it therefore fails the strict-subdomain requirement. By contrast, a wildcard source at *.*.example. lies strictly below the apex *.example. and can satisfy the containment check.

Consequently, an unconditional comparison requiring L to be at least the number of all non-root labels in S is not equivalent to the requirements in this document. Such a comparison would reject the valid exact-apex example. Appendix B gives a conditional count-based formulation.

5.3. Other Validation and Response Processing

The update does not change handling of the AD or CD bits, DNSSEC validation-failure responses, or retry behavior. It does not change whether a particular wildcard applies to a query name. Authenticated closest-encloser and next-closer evidence, NSEC3 Opt-Out constraints where applicable, and delegation boundaries remain governed by the existing specifications.

The containment test does not replace the special authority rules for DS RRsets. For example, a DS RRset at child.example. signed by example. can satisfy the containment check with R = O = child.example.; it is then evaluated using the existing parent-side DS rules.

6. Security Considerations

The purpose of these requirements is to prevent a key authenticated for one zone from being treated as authenticating wildcard-source data outside that zone. Cryptographic possession of a valid child-zone key does not authorize the holder to supply wildcard data in its parent zone. A separate authentic denial proof cannot supply the missing authentication of that source.

The per-signature checks and cache association requirements prevent two related failures: accepting an out-of-zone reconstructed owner directly, and assigning trusted status to unvalidated wildcard metadata after another signature has authenticated the RRset. Implementations need to apply the same association rules when inserting, merging, replacing, or recovering cached source data.

These checks do not protect against malicious data signed by a key that is legitimately authoritative for the source, compromised trust anchors, or errors in other validation procedures. They do not expand the scope of wildcard synthesis or the lifetime of cached data.

7. IANA Considerations

This document has no IANA actions.

8. Normative References

[RFC2119]
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/RFC2119, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC4034]
Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Resource Records for the DNS Security Extensions", RFC 4034, DOI 10.17487/RFC4034, , <https://www.rfc-editor.org/info/rfc4034>.
[RFC4035]
Arends, R., Austein, R., Larson, M., Massey, D., and S. Rose, "Protocol Modifications for the DNS Security Extensions", RFC 4035, DOI 10.17487/RFC4035, , <https://www.rfc-editor.org/info/rfc4035>.
[RFC4343]
Eastlake 3rd, D., "Domain Name System (DNS) Case Insensitivity Clarification", RFC 4343, DOI 10.17487/RFC4343, , <https://www.rfc-editor.org/info/rfc4343>.
[RFC4592]
Lewis, E., "The Role of Wildcards in the Domain Name System", RFC 4592, DOI 10.17487/RFC4592, , <https://www.rfc-editor.org/info/rfc4592>.
[RFC5155]
Laurie, B., Sisson, G., Arends, R., and D. Blacka, "DNS Security (DNSSEC) Hashed Authenticated Denial of Existence", RFC 5155, DOI 10.17487/RFC5155, , <https://www.rfc-editor.org/info/rfc5155>.
[RFC6840]
Weiler, S., Ed. and D. Blacka, Ed., "Clarifications and Implementation Notes for DNS Security (DNSSEC)", RFC 6840, DOI 10.17487/RFC6840, , <https://www.rfc-editor.org/info/rfc6840>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8198]
Fujiwara, K., Kato, A., and W. Kumari, "Aggressive Use of DNSSEC-Validated Cache", RFC 8198, DOI 10.17487/RFC8198, , <https://www.rfc-editor.org/info/rfc8198>.
[RFC9077]
van Dijk, P., "NSEC and NSEC3: TTLs and Aggressive Use", RFC 9077, DOI 10.17487/RFC9077, , <https://www.rfc-editor.org/info/rfc9077>.

9. Informative References

[BIND-11721]
Internet Systems Consortium, "CVE-2026-11721: Cache poisoning possible with label count discrepancy, RRSIG, and wildcards", , <https://kb.isc.org/docs/cve-2026-11721>.
[DNSSECVerif]
Zhang, Q., Shen, Z., Karim, I., Bertino, E., Liu, D., and Z. Li, "Mind the Gap: Cross-RFC Formal Analysis Exposes DNSSEC's Hidden Vulnerabilities", Accepted manuscript, ACM CCS 2026, DOI 10.1145/3830454.3846592, , <https://doi.org/10.1145/3830454.3846592>.
[KNOT-6.4.1]
CZ.NIC, "Knot Resolver 6.4.1 Release Notes", , <https://www.knot-resolver.cz/documentation/latest/NEWS.html#knot-resolver-6-4-1-2026-07-22>.
[PDNS-2026-10]
PowerDNS, "PowerDNS Recursor: CVE-2026-52688", , <https://doc.powerdns.com/recursor/security-advisories/powerdns-advisory-2026-10.html#cve-2026-52688-rrsigs-with-too-few-labels-can-lead-to-bypass-of-dnssec-wildcard-validation>.
[RFC9499]
Hoffman, P. and K. Fujiwara, "DNS Terminology", BCP 219, RFC 9499, DOI 10.17487/RFC9499, , <https://www.rfc-editor.org/info/rfc9499>.
[UNBOUND-44690]
NLnet Labs, "Unbound security advisory: CVE-2026-44690", , <https://nlnetlabs.nl/downloads/unbound/CVE-2026-44690.txt>.

Appendix A. Validation Examples

These examples test only the reconstructed-owner requirements. "Pass" does not mean that the RRset or a synthesized response is Secure: key authentication, authority, signature verification, time limits, and any necessary denial proofs must also succeed. All names are absolute.

Table 1: Owner reconstruction and containment
O S L R Result
a.c.example. c.example. 3 a.c.example. Pass
a.c.example. c.example. 2 *.c.example. Pass
a.b.c.example. c.example. 2 *.c.example. Pass
a.c.example. example. 1 *.example. Pass
a.c.example. c.example. 1 *.example. Fail
a.c.example. c.example. 0 *. Fail
a.c.example. c.example. 4 -- Fail (existing)
*.c.example. c.example. 2 *.c.example. Pass
*.example. *.example. 1 *.example. Pass (exact)
x.*.example. *.example. 1 *.example. Fail
x.*.example. *.example. 2 *.*.example. Pass
. . 0 . Pass
host. . 0 *. Pass
child.example. example. 2 child.example. Pass (DS)

The root-wildcard example illustrates the name relationship only and asserts no current root-zone contents or operational policy. The exact asterisk-apex example cannot supply a source of synthesis.

Additional regression cases should cover DNS case-insensitive equality, label-boundary comparisons, an out-of-zone received owner rejected by existing authority checks, and the following cache and signature interactions:

Appendix B. Conditional Label-Count Formulation

This appendix is informative. M counts all non-root labels in S, including a leading wildcard label. Assume existing checks establish that O is within the authoritative signing zone S and that L is no greater than N. Then the requirements in Section 4.1 are equivalent to this test:

if L >= M:
    pass this containment test
else if O == S and S has a leftmost wildcard label and L == M - 1:
    pass this containment test (exact apex only)
else:
    fail this containment test

Compare O and S using DNS case-insensitive equality. The exception requires exact owner/signer equality, not just an asterisk label. This test does not replace authority or signature-validation checks.

Appendix C. Acknowledgements

The DNSSECVerif research was conducted by Qifan Zhang, Zilin Shen, Imtiaz Karim, Elisa Bertino, Daiping Liu, and Zhou Li. This document builds on that work and on the DNSSEC specifications cited above.

Authors' Addresses

Qifan Zhang
Palo Alto Networks
Zilin Shen
Purdue University
Imtiaz Karim
The University of Texas at Dallas
Elisa Bertino
Purdue University
Daiping Liu
Palo Alto Networks
Zhou Li
University of California, Irvine