]> git.ipfire.org Git - thirdparty/bind9.git/commit
Reject NSEC records with next field with \000 label
authorMark Andrews <marka@isc.org>
Wed, 1 Dec 2021 13:34:38 +0000 (00:34 +1100)
committerPetr Špaček <pspacek@isc.org>
Thu, 2 Dec 2021 13:27:18 +0000 (14:27 +0100)
commit0aaaa8768f317db2a92fd311122889f6cb8afe50
treef90a61f0218d7535e04ee0db58732589444cd2e6
parent8878adcd6124f6e3629332d31937a28caf0d28ea
Reject NSEC records with next field with \000 label

A number of DNS implementation produce NSEC records with bad type
maps that don't contain types that exist at the name leading to
NODATA responses being synthesize instead of the records in the
zone.  NSEC records with these bad type maps often have the NSEC
NSEC field set to '\000.QNAME'.  We look for the first label of
this pattern.

e.g.
example.com NSEC \000.example.com SOA NS NSEC RRSIG
example.com RRRSIG NSEC ...
example.com SOA ...
example.com RRRSIG SOA ...
example.com NS ...
example.com RRRSIG NS ...
example.com A ...
example.com RRRSIG A ...

A is missing from the type map.

This introduces a temporary option 'reject-000-label' to control
this behaviour.
12 files changed:
bin/named/config.c
bin/named/named.conf.rst
bin/named/server.c
doc/arm/reference.rst
doc/man/named.conf.5in
doc/misc/options
doc/misc/options.active
doc/misc/options.grammar.rst
lib/dns/include/dns/view.h
lib/dns/resolver.c
lib/dns/view.c
lib/isccfg/namedconf.c