title: A too-strict assertion check could be triggered when responses in BIND 9.16.19 and 9.17.16 require UDP fragmentation if RRL is in use
description: In BIND 9.16.19, 9.17.16. Also, version 9.16.19-S1 of BIND Supported Preview Edition When a vulnerable version of named receives a query under the circumstances described above, the named process will terminate due to a failed assertion check. The vulnerability affects only BIND 9 releases 9.16.19, 9.17.16, and release 9.16.19-S1 of the BIND Supported Preview Edition.
problem types: If named attempts to respond over UDP with a response that is larger than the current effective interface maximum transmission unit (MTU), and if response-rate limiting (RRL) is active, an assertion failure is triggered (resulting in termination of the named server process).  There are two ways for named to exceed the interface MTU:      Direct configuration in named.conf setting max-udp-size to a value larger than the interface's MTU, or     Path MTU discovery (PMTUD) informing the IP stack that it should use a smaller MTU for the interface and destination than the default max-udp-size value of 1232. Some operating systems allow packets received via other protocols to affect PMTUD values for DNS over UDP.  While RRL is not enabled by default for user-defined views or the built-in default INTERNET (IN) class view, "_default", the built-in default CHAOS (CH) class view, "_bind", does have RRL enabled.  Note that while this defect can be triggered through misconfiguration or by deliberate exploitation, it can also arise during normal operating conditions, even with hardened PMTUD settings.  Affects BIND 9.16.19, 9.17.16. Also, version 9.16.19-S1 of BIND Supported Preview Edition.
affected:
{
product: BIND9
vendor: ISC
versions:
status: affected, version: Stable Branch 9.16.19
status: affected, version: Development Branch 9.17.16
status: affected, version: Supported Preview Edition 9.16.19-S1
}
metrics:
cvssV3_1: [
attackComplexity: LOW
attackVector: NETWORK
availabilityImpact: HIGH
baseScore: 7.5
baseSeverity: HIGH
confidentialityImpact: NONE
integrityImpact: NONE
privilegesRequired: NONE
scope: UNCHANGED
userInteraction: NONE
vectorString: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
version: 3.1
]
exploits: We are not aware of any active exploits, but the conditions triggering the crash can occur during normal operations
solutions: Upgrade to the patched release most closely related to your current version of BIND:
BIND 9.16.20
BIND 9.17.17
BIND Supported Preview Edition is a special feature preview branch of BIND provided to eligible ISC support customers.
BIND 9.16.20-S1
workarounds: Disabling RRL in all views, including the built-in CHAOS class view "_bind", prevents the faulty assertion from being reached. This can be done by removing all existing rate-limit statements from named.conf, and defining a replacement for the default CHAOS view:
view override_bind chaos {
recursion no;
notify no;
allow-new-zones no;
max-cache-size 2M;
zone "version.bind" chaos {
type primary;
database "_builtin version";
};
zone "hostname.bind" chaos {
type primary;
database "_builtin hostname";
};
zone "authors.bind" chaos {
type primary;
database "_builtin authors";
};
zone "id.server" chaos {
type primary;
database "_builtin id";
};
};
