notes-9.20.24.rst revision 1.1 1 1.1 christos .. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
2 1.1 christos ..
3 1.1 christos .. SPDX-License-Identifier: MPL-2.0
4 1.1 christos ..
5 1.1 christos .. This Source Code Form is subject to the terms of the Mozilla Public
6 1.1 christos .. License, v. 2.0. If a copy of the MPL was not distributed with this
7 1.1 christos .. file, you can obtain one at https://mozilla.org/MPL/2.0/.
8 1.1 christos ..
9 1.1 christos .. See the COPYRIGHT file distributed with this work for additional
10 1.1 christos .. information regarding copyright ownership.
11 1.1 christos
12 1.1 christos Notes for BIND 9.20.24
13 1.1 christos ----------------------
14 1.1 christos
15 1.1 christos Removed Features
16 1.1 christos ~~~~~~~~~~~~~~~~
17 1.1 christos
18 1.1 christos - Remove ineffective TCP fallback after repeated UDP timeouts.
19 1.1 christos
20 1.1 christos When an authoritative server failed to respond to two consecutive UDP
21 1.1 christos queries, :iscman:`named` marked the next retry as TCP but still sent
22 1.1 christos it over UDP, producing misleading dnstap records. The ineffective
23 1.1 christos retry path has been removed; a corrected TCP fallback will be restored
24 1.1 christos in future BIND 9 versions. :gl:`#5529`
25 1.1 christos
26 1.1 christos Feature Changes
27 1.1 christos ~~~~~~~~~~~~~~~
28 1.1 christos
29 1.1 christos - Fall back to TCP on receipt of a UDP response with a mismatched query ID.
30 1.1 christos
31 1.1 christos BIND used to wait silently for the correct DNS message ID on a UDP
32 1.1 christos fetch, even after receiving a response from the expected server with
33 1.1 christos the wrong ID, leaving room for off-path spoofing attempts to keep
34 1.1 christos guessing within that window. The resolver now retries the fetch over
35 1.1 christos TCP on the first such response, and a new ``MismatchTCP`` statistics
36 1.1 christos counter tracks how often the fallback fires. :gl:`#5449`
37 1.1 christos
38 1.1 christos - Limit the number of glue records cached from a referral.
39 1.1 christos
40 1.1 christos When a delegation response contained many glue addresses per listed
41 1.1 christos nameserver, all of them were cached without a per-nameserver bound,
42 1.1 christos inflating resolver cache memory beyond what resolution could ever use.
43 1.1 christos The cache now keeps at most 20 IPv4 and 20 IPv6 glue addresses per
44 1.1 christos nameserver from a delegation. :gl:`#5701`
45 1.1 christos
46 1.1 christos - Fix a resolver stall on a CNAME response to a DS query.
47 1.1 christos
48 1.1 christos A validating resolver could stall for about twelve seconds and then
49 1.1 christos return SERVFAIL when an authoritative server answered a DS query with
50 1.1 christos a CNAME. Such responses are now rejected promptly, so the query fails
51 1.1 christos quickly instead of hanging. :gl:`#5878`
52 1.1 christos
53 1.1 christos Bug Fixes
54 1.1 christos ~~~~~~~~~
55 1.1 christos
56 1.1 christos - The resolver now removes other RRsets at the same name when caching a
57 1.1 christos CNAME.
58 1.1 christos
59 1.1 christos When an RRset is in stale cache and the authoritative server changes
60 1.1 christos the record type to CNAME, the resolver fails to refresh the stale
61 1.1 christos cache. This has been fixed. :gl:`#5302`
62 1.1 christos
63 1.1 christos - Fix :any:`nxdomain-redirect` combined with :any:`dns64`.
64 1.1 christos
65 1.1 christos When a resolver was configured with both :any:`nxdomain-redirect` and
66 1.1 christos :any:`dns64` in the same view, an AAAA query for a nonexistent name
67 1.1 christos could abort :iscman:`named`. The combination failed whenever the
68 1.1 christos redirect zone held A records but no AAAA records. The server now
69 1.1 christos serves the empty AAAA response from the redirect zone as-is, instead
70 1.1 christos of attempting DNS64 synthesis on top of it. :gl:`#5789`
71 1.1 christos
72 1.1 christos - Fix DNS64 owner case after DNAME restart.
73 1.1 christos
74 1.1 christos When BIND 9 was configured to use DNS64 and encountered a DNAME
75 1.1 christos redirect, it could end up using freed memory for the DNS response
76 1.1 christos owner name. This caused the response to contain corrupted data. This
77 1.1 christos fix ensures the correct owner name is used when constructing the
78 1.1 christos synthesized response after a DNAME redirect. :gl:`#5934`
79 1.1 christos
80 1.1 christos - Clear REDIRECT flag when it isn't needed.
81 1.1 christos
82 1.1 christos When :any:`nxdomain-redirect` is in use, and a recursive query is used
83 1.1 christos to get the redirected answer, a flag is set to distinguish it from a
84 1.1 christos normal recursive response. Previously, that flag was left set
85 1.1 christos afterward, which could trigger an assertion if a normal recursive
86 1.1 christos query was sent later on behalf of the same client: for example,
87 1.1 christos because the :any:`filter-aaaa` plugin was in use. This has been
88 1.1 christos fixed. :gl:`#5936`
89 1.1 christos
90 1.1 christos - Disable output escaping in ``bind9.xsl``.
91 1.1 christos
92 1.1 christos The statistics charts were not displaying on some browsers. This has
93 1.1 christos been fixed. :gl:`#5990`
94 1.1 christos
95 1.1 christos - Fix crash on badly configured secondary signer.
96 1.1 christos
97 1.1 christos A badly configured secondary signer that was missing the ``file``
98 1.1 christos entry caused the server to crash, rather than to reject the
99 1.1 christos configuration. This has been fixed. :gl:`#5993`
100 1.1 christos
101 1.1 christos - Fix a possible crash on concurrent TKEY DELETE for the same key.
102 1.1 christos
103 1.1 christos On a server configured with :any:`tkey-gssapi-keytab`, an
104 1.1 christos authenticated peer could crash :iscman:`named` by sending two TKEY
105 1.1 christos DELETE requests for the same dynamic key in rapid succession. This
106 1.1 christos has been fixed. :gl:`#6001`
107 1.1 christos
108 1.1 christos - Reject RRSIG records covering meta-types.
109 1.1 christos
110 1.1 christos A recursive resolver could accept and cache an RRSIG record whose
111 1.1 christos Type-Covered field named a meta-type (ANY, AXFR, IXFR, MAILA, MAILB),
112 1.1 christos even though no real RRset of those types ever exists. Such records are
113 1.1 christos now rejected by the DNS message parser. :gl:`#6002`
114