Home | History | Annotate | Line # | Download | only in changelog
      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 BIND 9.20.29
     13  1.1  christos ------------
     14  1.1  christos 
     15  1.1  christos Security Fixes
     16  1.1  christos ~~~~~~~~~~~~~~
     17  1.1  christos 
     18  1.1  christos - [CVE-2026-19668] Prevent excessive CPU use validating crafted DNSSEC
     19  1.1  christos   responses. ``a0a61dba9e``
     20  1.1  christos 
     21  1.1  christos   A malicious authoritative server could serve a securely delegated zone
     22  1.1  christos   whose DS and DNSKEY records carry many distinct key tags but no valid
     23  1.1  christos   match, forcing a validating resolver into excessive key-tag matching
     24  1.1  christos   and high CPU use for every query. BIND now bounds this work with the
     25  1.1  christos   per-query validation limit (max-validations-per-fetch). :gl:`#5349`
     26  1.1  christos 
     27  1.1  christos - [CVE-2026-19033] Require a TSIG on every message of incoming zone
     28  1.1  christos   transfers. ``9404cd2b8c``
     29  1.1  christos 
     30  1.1  christos   BIND 9 used to accept TSIG-signed zone transfers in which some
     31  1.1  christos   messages were unsigned, and processed those messages before the next
     32  1.1  christos   signature could vouch for them. It now requires a TSIG on every
     33  1.1  christos   message of an incoming AXFR or IXFR; all modern nameserver already
     34  1.1  christos   sign every message, so no change is expected in practice. :gl:`#6062`
     35  1.1  christos 
     36  1.1  christos - [CVE-2026-77119] Prevent a DNSSEC downgrade of secure delegations via
     37  1.1  christos   unrelated NSEC3. ``3bed9c8e9e``
     38  1.1  christos 
     39  1.1  christos   A validating resolver could be tricked into treating a secure
     40  1.1  christos   delegation as unsigned and accepting forged answers for names beneath
     41  1.1  christos   it, if an attacker could inject responses to its queries. Such forged
     42  1.1  christos   proofs are now rejected. :gl:`#6234`
     43  1.1  christos 
     44  1.1  christos - [CVE-2026-19941] Prevent forged DNSSEC-validated NXDOMAIN responses.
     45  1.1  christos   ``a36bf58daf``
     46  1.1  christos 
     47  1.1  christos   A validating resolver could accept a signed NSEC record from an
     48  1.1  christos   unrelated zone as proof that a wildcard did not exist. An on-path
     49  1.1  christos   attacker or malicious forwarder controlling a signed zone could
     50  1.1  christos   therefore forge an authenticated NXDOMAIN response for a name that
     51  1.1  christos   should resolve through a wildcard. BIND now requires the
     52  1.1  christos   wildcard-denial and name-nonexistence proofs to be signed by the same
     53  1.1  christos   zone. :gl:`#6253`
     54  1.1  christos 
     55  1.1  christos - [CVE-2026-19666] DNS64 with break-dnssec could cause an assertion
     56  1.1  christos   failure. ``4cec4965c4``
     57  1.1  christos 
     58  1.1  christos   When a "dns64" statement is configured with "break-dnssec yes" and its
     59  1.1  christos   "exclude" list matches some but not all of the addresses in an AAAA
     60  1.1  christos   RRset, named removes the excluded addresses from the answer instead of
     61  1.1  christos   synthesizing new ones. If the answer being filtered had been cached
     62  1.1  christos   together with a proof that the queried name does not exist -- which is
     63  1.1  christos   what a wildcard match produces -- named terminated with an assertion
     64  1.1  christos   failure.
     65  1.1  christos 
     66  1.1  christos   Only recursive resolvers are affected, and only when "break-dnssec
     67  1.1  christos   yes" is in use; the answer has to come from the cache, so a server
     68  1.1  christos   that is only authoritative cannot reach this. :gl:`#6301`
     69  1.1  christos 
     70  1.1  christos - [CVE-2026-19667] Reject negative cache records that do not fit in a
     71  1.1  christos   dns_rdata_t. ``dbf08c8581``
     72  1.1  christos 
     73  1.1  christos   A single crafted response from a server could make a resolver cache a
     74  1.1  christos   malformed negative entry and then terminate with an assertion failure
     75  1.1  christos   when reading it back. Only recursive resolvers are affected, on a
     76  1.1  christos   default configuration. :gl:`#6302`
     77  1.1  christos 
     78  1.1  christos - [CVE-2026-19662] Prevent resolver crash with cached DNSSEC proofs.
     79  1.1  christos   ``c884cc1ba0``
     80  1.1  christos 
     81  1.1  christos   Under certain timing conditions, concurrent recursive queries could
     82  1.1  christos   cause named to crash when cached DNSSEC NOQNAME proof data was
     83  1.1  christos   replaced while still in use. Cached proof data is now retained until
     84  1.1  christos   all queries using it have completed. :gl:`#6333`
     85  1.1  christos 
     86  1.1  christos - [CVE-2026-75029] Discard repeated SOA, CNAME, and DNAME records when
     87  1.1  christos   parsing DNS messages. ``0d630758c2``
     88  1.1  christos 
     89  1.1  christos   A DNS message could carry the same SOA, CNAME, or DNAME record many
     90  1.1  christos   times, and named kept every copy while parsing it. With name
     91  1.1  christos   compression those copies took up far more memory internally than in
     92  1.1  christos   the message itself, and every later processing step had to handle all
     93  1.1  christos   of them. named now keeps the first copy of such a record and discards
     94  1.1  christos   identical repeats. :gl:`#6335`
     95  1.1  christos 
     96  1.1  christos - [CVE-2026-77692] Fix an unauthenticated crash on HTTPS using SIG(0)
     97  1.1  christos   ``5a24401c5c``
     98  1.1  christos 
     99  1.1  christos   A specifically crafted HTTPS query using SIG(0) as authentication
    100  1.1  christos   could crash named if the client closes the connection before named
    101  1.1  christos   actually verifies the signature. This is now fixed. :gl:`#6343`
    102  1.1  christos 
    103  1.1  christos - [CVE-2026-81736] Cached HTTPS/SVCB aliases could exhaust resolver CPU.
    104  1.1  christos   ``20bbb1639a``
    105  1.1  christos 
    106  1.1  christos   A recursive resolver that had cached a large set of interlinked HTTPS
    107  1.1  christos   or SVCB records in alias form could be driven to do an excessive
    108  1.1  christos   amount of work assembling a single response, because it followed every
    109  1.1  christos   cached alias target when building the additional section. A client
    110  1.1  christos   permitted to use recursion, together with an attacker-controlled zone
    111  1.1  christos   used to plant the records, could repeat small queries to consume
    112  1.1  christos   enough CPU to delay or deny service to other clients. The amount of
    113  1.1  christos   additional processing done for one query is now bounded. :gl:`#6347`
    114  1.1  christos 
    115  1.1  christos - [CVE-2026-76163] Prevent TKEY queries from terminating named without
    116  1.1  christos   global options. ``7645138538``
    117  1.1  christos 
    118  1.1  christos   named could terminate unexpectedly when a remote client sent a TKEY
    119  1.1  christos   query if the configuration did not include a global options statement.
    120  1.1  christos   This has been fixed.
    121  1.1  christos 
    122  1.1  christos   ISC thanks Owais Lone (thesecguy) for reporting the issue. :gl:`#6357`
    123  1.1  christos 
    124  1.1  christos - [CVE-2026-78301] Out-of-zone records in a zone database could be
    125  1.1  christos   served as authoritative. ``72a10c3a0b``
    126  1.1  christos 
    127  1.1  christos   When a zone database contained records for names outside the zone 
    128  1.1  christos   such as a delegation above the zone apex, left behind by a secondary
    129  1.1  christos   that had accepted out-of-zone data from its primary  the server could
    130  1.1  christos   treat them as authoritative and answer queries for names inside the
    131  1.1  christos   zone with that out-of-zone data instead of the zone's own. A server
    132  1.1  christos   that was also a resolver could follow such a delegation and cache the
    133  1.1  christos   answers of the server it named, affecting names outside the configured
    134  1.1  christos   zone. Zone database lookups are now confined to names at or below the
    135  1.1  christos   zone's origin.
    136  1.1  christos 
    137  1.1  christos   ISC would like to thank Henrique Pereira for reporting the issue.
    138  1.1  christos   :gl:`#6361`
    139  1.1  christos 
    140  1.1  christos - [CVE-2026-80274] Crash on wildcard answers carrying both NSEC and
    141  1.1  christos   NSEC3 proofs. ``0e44451b1a``
    142  1.1  christos 
    143  1.1  christos   When a wildcard answer arrived with both NSEC and NSEC3 records at the
    144  1.1  christos   name proving that the queried name does not exist, the resolver could
    145  1.1  christos   pick different records when caching the answer and when retrieving the
    146  1.1  christos   proof, depending on the order in which the authoritative server sent
    147  1.1  christos   them. This could terminate named with an assertion failure, fail the
    148  1.1  christos   query with SERVFAIL, or serve a denial record other than the one that
    149  1.1  christos   had been verified. The resolver now caches and serves the same denial
    150  1.1  christos   record it accepted when the answer was received.
    151  1.1  christos 
    152  1.1  christos   ISC would like to thank hythyt for reporting the issue. :gl:`#6369`
    153  1.1  christos 
    154  1.1  christos - [CVE-2026-81563] Following HTTPS/SVCB aliases could leak resolver
    155  1.1  christos   cache memory. ``3162df369e``
    156  1.1  christos 
    157  1.1  christos   When a recursive server answered a query for an HTTPS or SVCB record
    158  1.1  christos   in alias form and the alias target had more than 13 records, the
    159  1.1  christos   target records were pinned in the cache permanently instead of being
    160  1.1  christos   released once the answer was sent. A remote party who could make the
    161  1.1  christos   server follow such aliases to a steady stream of fresh names could
    162  1.1  christos   grow the cache beyond the configured max-cache-size until the server
    163  1.1  christos   was unable to resolve unrelated names. The records are now released
    164  1.1  christos   correctly.
    165  1.1  christos 
    166  1.1  christos   ISC would like to thank Samy Medjahed/Ap4sh for reporting the issue.
    167  1.1  christos   :gl:`#6374`
    168  1.1  christos 
    169  1.1  christos New Features
    170  1.1  christos ~~~~~~~~~~~~
    171  1.1  christos 
    172  1.1  christos - Add an agent skill for the isc_job/isc_async/isc_work APIs.
    173  1.1  christos   ``fe32990b06``
    174  1.1  christos 
    175  1.1  christos   Documents when to use isc_job_run(), isc_async_run() or
    176  1.1  christos   isc_work_enqueue(), and the contract each one imposes. No functional
    177  1.1  christos   change. :gl:`!12561`
    178  1.1  christos 
    179  1.1  christos Removed Features
    180  1.1  christos ~~~~~~~~~~~~~~~~
    181  1.1  christos 
    182  1.1  christos - Remove unused closest encloser proof caching. ``abd8b5bfd8``
    183  1.1  christos 
    184  1.1  christos   BIND used to cache an NSEC3 closest encloser proof alongside positive
    185  1.1  christos   wildcard answers so that a resolver could re-send it when answering
    186  1.1  christos   from its cache. That stopped being used in BIND 9.9 (2011), when
    187  1.1  christos   positive wildcard responses were changed to omit that NSEC3 record 
    188  1.1  christos   RFC 5155 requires only the next closer name proof  and the closest
    189  1.1  christos   encloser came to be  derived during validation instead. The caching
    190  1.1  christos   code has been unreachable ever since, so this removes it with no
    191  1.1  christos   change in behaviour. :gl:`#5803` :gl:`!12660`
    192  1.1  christos 
    193  1.1  christos Feature Changes
    194  1.1  christos ~~~~~~~~~~~~~~~
    195  1.1  christos 
    196  1.1  christos - Reject oversized and malformed DNSKEY records up front. ``6c22109924``
    197  1.1  christos 
    198  1.1  christos   Oversized RSA key material in a DNSKEY record was only rejected after
    199  1.1  christos   it had been converted, allocating memory proportional to the record
    200  1.1  christos   size. Such records are now rejected before conversion, as are Ed25519
    201  1.1  christos   and Ed448 keys with trailing bytes that were previously silently
    202  1.1  christos   ignored. :gl:`#4537` :gl:`!12560`
    203  1.1  christos 
    204  1.1  christos Bug Fixes
    205  1.1  christos ~~~~~~~~~
    206  1.1  christos 
    207  1.1  christos - Prevent a crash when using both dns64 and filter-a. ``bce5d10d18``
    208  1.1  christos 
    209  1.1  christos   An assertion failure was possible when using both `dns64` and the
    210  1.1  christos   `filter-a` plugin simultaneously; this has been fixed. :gl:`#5979`
    211  1.1  christos   :gl:`!12663`
    212  1.1  christos 
    213  1.1  christos - Fix update-policy grant external address passing. ``b1e955c326``
    214  1.1  christos 
    215  1.1  christos   Only TCP client addresses are supposed to be passed to an `external`
    216  1.1  christos   handler for the associated `update-policy` rule, but UDP client
    217  1.1  christos   addresses were also being passed.  This could have caused the external
    218  1.1  christos   handler to return a result it otherwise wouldn't. This has been fixed.
    219  1.1  christos   :gl:`#6061` :gl:`!12555`
    220  1.1  christos 
    221  1.1  christos - Missing required NSEC3 for delegation not detected. ``e84ed2e9d7``
    222  1.1  christos 
    223  1.1  christos   A missing required NSEC3 record for an insecure delegation in a non
    224  1.1  christos   OPTOUT range was not being detected.  This has been fixed. :gl:`#6063`
    225  1.1  christos   :gl:`!12611`
    226  1.1  christos 
    227  1.1  christos - Tighten EUI48 and EUI48 text parsing. ``ff50f2cdf1``
    228  1.1  christos 
    229  1.1  christos   Malformed EUI48 and EUI64 records could be accepted.  This has been
    230  1.1  christos   fixed. :gl:`#6082` :gl:`!12521`
    231  1.1  christos 
    232  1.1  christos - GeoIP ACL state can be stale or wrong after reload. ``63baf425b3``
    233  1.1  christos 
    234  1.1  christos   `named` caches GeoIP information after looking it up, but the cached
    235  1.1  christos   information was not invalidated when the GeoIP database was reloaded,
    236  1.1  christos   so it could continue to be used.  We now invalidate existing cached
    237  1.1  christos   GeoIP information as part of the reloading process. :gl:`#6083`
    238  1.1  christos   :gl:`!12662`
    239  1.1  christos 
    240  1.1  christos - Honor DNSSEC policy key tag ranges. ``b82e5834b7``
    241  1.1  christos 
    242  1.1  christos   When a DNSSEC policy configured a non-default tag-range, dnssec-keygen
    243  1.1  christos   and dnssec-ksr could accept generated keys outside that range. Both
    244  1.1  christos   tools now honor the configured minimum and maximum key tags.
    245  1.1  christos   :gl:`#6091` :gl:`!12549`
    246  1.1  christos 
    247  1.1  christos - Fix double free in mdig when EDNS options are specified.
    248  1.1  christos   ``af5bd0b0ff``
    249  1.1  christos 
    250  1.1  christos   When the default_query is cloned the EDNS options need to be cloned
    251  1.1  christos   rather than the pointer copied.  The old behaviour results in a double
    252  1.1  christos   free of the options.  This has been fixed. :gl:`#6095` :gl:`!12661`
    253  1.1  christos 
    254  1.1  christos - Fix a crash when an IXFR falls back to AXFR with updates still
    255  1.1  christos   pending. ``e34062bc7e``
    256  1.1  christos 
    257  1.1  christos   When a secondary zone received an incremental transfer (IXFR) and the
    258  1.1  christos   primary then caused named to fall back to a full transfer (AXFR) while
    259  1.1  christos   some of the already-received incremental changes were still waiting to
    260  1.1  christos   be applied, named could later crash when that transfer finished. The
    261  1.1  christos   pending changes are now discarded correctly before the AXFR retry.
    262  1.1  christos   :gl:`#6114` :gl:`!12624`
    263  1.1  christos 
    264  1.1  christos - Fix DS requests to parental agents over TLS. ``55830d30f6``
    265  1.1  christos 
    266  1.1  christos   TLS configuration for parental agents was being ignored when sending
    267  1.1  christos   DS requests. This has been fixed. :gl:`#6135` :gl:`!12613`
    268  1.1  christos 
    269  1.1  christos - Fix a crash when resolving names below a cached DNAME. ``b94e940f52``
    270  1.1  christos 
    271  1.1  christos   A recursive resolver could crash when it answered a query for a name
    272  1.1  christos   beneath a cached DNAME while that same DNAME record was concurrently
    273  1.1  christos   refreshed or evicted from the cache. :gl:`#6182` :gl:`!12593`
    274  1.1  christos 
    275  1.1  christos - Rndc-confgen `-q` (quiet) option is documented but doesn't work.
    276  1.1  christos   ``7e4a7ca1a7``
    277  1.1  christos 
    278  1.1  christos   The command line parsing in rndc-confgen was broken so  `rndc-confgen
    279  1.1  christos   -q` did not work.  This has been fixed. :gl:`#6187` :gl:`!12575`
    280  1.1  christos 
    281  1.1  christos - Enforce query ACLs for redirect zones and searched DLZs.
    282  1.1  christos   ``bc69876b2e``
    283  1.1  christos 
    284  1.1  christos   Queries answered from redirect zones or searched DLZ databases did not
    285  1.1  christos   consistently honor `allow-query` and `allow-query-on`, potentially
    286  1.1  christos   exposing restricted DNS data to excluded clients or through excluded
    287  1.1  christos   listening addresses. These ACLs are now enforced before redirect or
    288  1.1  christos   DLZ data is returned. :gl:`#6251`, #6252 :gl:`!12646`
    289  1.1  christos 
    290  1.1  christos - Check "asnum" validity in GeoIP ACLs. ``28c2bfdc7b``
    291  1.1  christos 
    292  1.1  christos   We now check the validity of autonomous system (AS) numbers when
    293  1.1  christos   parsing GeoIP ACLs that use `asnum` elements at configuration time.
    294  1.1  christos 
    295  1.1  christos   `asnum` values start with an optional case-insensitive "AS" prefix,
    296  1.1  christos   followed only by decimal digits, with no spaces or other extraneous
    297  1.1  christos   characters. The value represented cannot exceed 2^32. :gl:`#6255`
    298  1.1  christos   :gl:`!12511`
    299  1.1  christos 
    300  1.1  christos - Prevent crashes while reporting DNSSEC signing statistics.
    301  1.1  christos   ``c190514f0a``
    302  1.1  christos 
    303  1.1  christos   Servers with zone-statistics full could terminate while reporting
    304  1.1  christos   DNSSEC signing statistics for a zone tracking adding more than four
    305  1.1  christos   signing keys. :gl:`#6256` :gl:`!12674`
    306  1.1  christos 
    307  1.1  christos - Fix various nits in the netmgr code. ``c28cdad51b``
    308  1.1  christos 
    309  1.1  christos   The MR consists of couple of small fixes and uncaught errors in the
    310  1.1  christos   Network Manager. :gl:`#6257` :gl:`!12576`
    311  1.1  christos 
    312  1.1  christos - Fix a crash on remote-servers lists that reference themselves.
    313  1.1  christos   ``aaae614f9d``
    314  1.1  christos 
    315  1.1  christos   Since 9.21.16 and 9.20.17, a remote-servers, primaries, masters, or
    316  1.1  christos   parental-agents list that referenced itself, directly or through
    317  1.1  christos   another list, made named crash on startup or reconfiguration. Such
    318  1.1  christos   references are again skipped and the remaining entries in the list are
    319  1.1  christos   used, as in earlier versions. :gl:`#6287` :gl:`!12604`
    320  1.1  christos 
    321  1.1  christos - A record from outside a response policy zone could stop named.
    322  1.1  christos   ``d135513b37``
    323  1.1  christos 
    324  1.1  christos   A response policy zone transferred from a primary can contain a record
    325  1.1  christos   whose name lies outside the zone. Such a record could stop named, both
    326  1.1  christos   when it arrived and again at every startup afterwards, because a
    327  1.1  christos   secondary keeps it in its own copy of the zone. Records like this are
    328  1.1  christos   now rejected and logged; previously one could also silently create a
    329  1.1  christos   policy entry for an unrelated name. :gl:`#6304` :gl:`!12543`
    330  1.1  christos 
    331  1.1  christos - "rndc flushtree ." failed to flush the cache. ``96e8b585ed``
    332  1.1  christos 
    333  1.1  christos   `rndc flushtree` flushes cache data below a specified name. If the
    334  1.1  christos   name specified is the DNS root, it should fully empty the cache, the
    335  1.1  christos   same as `rndc flush`.  However, there was a bug causing the command,
    336  1.1  christos   in that case, to have no effect on the cache at all; this has been
    337  1.1  christos   fixed. :gl:`#6308` :gl:`!12582`
    338  1.1  christos 
    339  1.1  christos - Invalid key-store configuration could abort the DNSSEC tools.
    340  1.1  christos   ``1d796ab072``
    341  1.1  christos 
    342  1.1  christos   Invalid configured key-stores named "key-directory" in configuration
    343  1.1  christos   files could abort the DNSSEC tools. This has been fixed. :gl:`#6313`
    344  1.1  christos   :gl:`!12653`
    345  1.1  christos 
    346  1.1  christos - NSEC signature set could bypass the secure-delegation check.
    347  1.1  christos   ``c966177f6c``
    348  1.1  christos 
    349  1.1  christos   When proving that a delegation is insecure, the validator bounded an
    350  1.1  christos   NSEC record's authority by the signer of whichever RRSIG happened to
    351  1.1  christos   come first in the record's signature set, rather than the signature
    352  1.1  christos   that actually verified. A grandparent NSEC padded with an extra,
    353  1.1  christos   unverifiable signature could therefore pass the check that keeps such
    354  1.1  christos   proofs from reaching below a signed child zone. The validator now
    355  1.1  christos   requires every signature on the NSEC to name the same signer and
    356  1.1  christos   refuses proofs whose signature set is malformed or larger than
    357  1.1  christos   max-validations-per-fetch allows. :gl:`#6321`
    358  1.1  christos 
    359  1.1  christos - Fix a possible nsupdate issue when using GSS-TSIG. ``4ddcab2d3c``
    360  1.1  christos 
    361  1.1  christos   The :iscman:`nsupdate` process could terminate unexpectedly when using
    362  1.1  christos   the GSS-TSIG mode executed with the :option:`nsupdate -g` option. This
    363  1.1  christos   has been fixed. :gl:`#6325` :gl:`!12588`
    364  1.1  christos 
    365  1.1  christos - Fix isccc_alist_define error paths. ``af1349552a``
    366  1.1  christos 
    367  1.1  christos   If there is an out of memory error in isccc_alist_define a memory leak
    368  1.1  christos   (the sexpr holding the key name) or a double free (value) could occur.
    369  1.1  christos   This has been fixed. :gl:`#6329` :gl:`!12636`
    370  1.1  christos 
    371  1.1  christos - Check for empty 'endpoints' list. ``23f58af443``
    372  1.1  christos 
    373  1.1  christos   Configuring an `http` block with `endpoints {};` previously caused a
    374  1.1  christos   crash in `named`. This is now rejected earlier by the configuration
    375  1.1  christos   check. :gl:`#6330` :gl:`!12552`
    376  1.1  christos 
    377  1.1  christos - Named could crash with a single-element geoip sortlist. ``0e996a4d3b``
    378  1.1  christos 
    379  1.1  christos   If `named` was configured with a single-element sortlist containing a
    380  1.1  christos   `geoip` ACL element, any matching query triggered an assertion
    381  1.1  christos   failure. This has been fixed. :gl:`#6342` :gl:`!12583`
    382  1.1  christos 
    383  1.1  christos - Prevent out-of-bailiwick CNAMEs from evicting cached records.
    384  1.1  christos   ``cdedd4acd5``
    385  1.1  christos 
    386  1.1  christos   A recursive resolver could remove valid cached records when a DNS
    387  1.1  christos   response contained an out-of-bailiwick CNAME with the same owner name.
    388  1.1  christos   Out-of-bailiwick data is now discarded before it can modify the cache.
    389  1.1  christos   :gl:`#6345` :gl:`!12651`
    390  1.1  christos 
    391  1.1  christos - Restore periodic cleanup of stale resolver address data.
    392  1.1  christos   ``356f4013f8``
    393  1.1  christos 
    394  1.1  christos   Stale resolver address data could remain cached until memory pressure
    395  1.1  christos   or an explicit flush. Correct the cleanup interval so it is removed
    396  1.1  christos   periodically. :gl:`#6346` :gl:`!12589`
    397  1.1  christos 
    398  1.1  christos - Fix named-checkconf/named crash with malformed key name.
    399  1.1  christos   ``9f218f6aaf``
    400  1.1  christos 
    401  1.1  christos   When a primary/remote-server key name was malformed, named-checkconf
    402  1.1  christos   and named were both crashing (after warning about the invalid key
    403  1.1  christos   name). This is now fixed. :gl:`#6362` :gl:`!12639`
    404  1.1  christos 
    405  1.1  christos - Fix -Wformat-truncation warning in totext_in_wks() ``f97c2bea40``
    406  1.1  christos 
    407  1.1  christos   BIND 9 failed to build with GCC 16 at -O3: rendering a WKS record as
    408  1.1  christos   text triggered a -Wformat-truncation error, which is fatal in
    409  1.1  christos   developer builds. The port number is now printed with a 16-bit format
    410  1.1  christos   specifier, so the compiler can see it always fits the output buffer.
    411  1.1  christos   :gl:`!12542`
    412  1.1  christos 
    413  1.1  christos - Fix off-by-one errors caused by magic hardcoded values. ``726c6cb795``
    414  1.1  christos 
    415  1.1  christos   Fix off-by-one comparinson errors: "named -p http=" dropped the first
    416  1.1  christos   digit of the given port (for example, "http=8080" selected port 80)
    417  1.1  christos   and now uses the port as given, and "named-rrchecker -C" compared only
    418  1.1  christos   part of the "CLASS" prefix when filtering generic class names, which
    419  1.1  christos   was harmless in practice but is now corrected. :gl:`!12616`
    420  1.1  christos 
    421  1.1  christos - Hmac_verify() now accepts truncated HMACs only when requested.
    422  1.1  christos   ``c81b111496``
    423  1.1  christos 
    424  1.1  christos   The hmac_verify() function incorrectly compares only up to
    425  1.1  christos   'sig->length' bytes, but the signature and its length should not be
    426  1.1  christos   trusted, e.g. in case if it comes from a user query.
    427  1.1  christos 
    428  1.1  christos   Don't accept signatures which length isn't equal to the expected
    429  1.1  christos   calculated HMAC length unless it is explicitly requested by the
    430  1.1  christos   caller, e.g. for truncated TSIG [1] support.
    431  1.1  christos 
    432  1.1  christos   [1] https://datatracker.ietf.org/doc/html/rfc8945#name-tsig-truncation
    433  1.1  christos   -policy :gl:`!12629`
    434  1.1  christos 
    435  1.1  christos - Prevent resolver crashes while processing DNS over TCP. ``81b3b6d89f``
    436  1.1  christos 
    437  1.1  christos   Recursive resolvers could terminate with an assertion failure while
    438  1.1  christos   processing DNS responses over TCP under sustained traffic. The failure
    439  1.1  christos   was observed on resolvers configured globally with forward only; the
    440  1.1  christos   same transport path is also used by iterative resolution.  This has
    441  1.1  christos   been fixed. :gl:`!12537`
    442  1.1  christos 
    443  1.1  christos 
    444