Reject an apex NS DNSRecord instead of silently appending #24

Merged
benvin merged 1 commits from benvin/apex-ns-dnsrecord-reject into main 2026-09-27 11:23:47 +10:00
Member

BIND ignores an RRset-wide delete of NS at a zone apex, so a DNSRecord with name: "@" and type: NS only ever adds to the live RRset while the transaction reports success. acme.unkin.net has published a name its DNSRecord spec does not list for weeks. The apex NS is converged per rdata from BindZone.spec.nameservers; DNSRecord has no equivalent and should not grow a second one.

  • add a CEL rule rejecting an apex NS DNSRecord at admission, naming BindZone.spec.nameservers
  • fail the reconcile with ApexNSUnsupported for a zone-qualified apex name, which CEL cannot see
  • skip the ignored RRset delete on the deletion path
  • share one isApexNS helper across the apex checks

Closes #23

BIND ignores an RRset-wide delete of NS at a zone apex, so a DNSRecord with `name: "@"` and `type: NS` only ever adds to the live RRset while the transaction reports success. `acme.unkin.net` has published a name its DNSRecord spec does not list for weeks. The apex NS is converged per rdata from `BindZone.spec.nameservers`; DNSRecord has no equivalent and should not grow a second one. - add a CEL rule rejecting an apex NS DNSRecord at admission, naming `BindZone.spec.nameservers` - fail the reconcile with `ApexNSUnsupported` for a zone-qualified apex name, which CEL cannot see - skip the ignored RRset delete on the deletion path - share one `isApexNS` helper across the apex checks Closes #23
unkin-agent added 1 commit 2026-09-27 11:04:55 +10:00
reject an apex NS DNSRecord instead of appending to the live RRset
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/build Pipeline was successful
ci/woodpecker/pr/test Pipeline was successful
afb4fe2631
BIND ignores an RRset-wide delete at a zone apex, so a DNSRecord for the
apex NS can only add to what the zone was seeded with while reporting
success. BindZone.spec.nameservers converges it per rdata.
Author
Member

No findings.

No findings.
benvin merged commit 8c0b36521e into main 2026-09-27 11:23:47 +10:00
benvin deleted branch benvin/apex-ns-dnsrecord-reject 2026-09-27 11:23:47 +10:00
Sign in to join this conversation.