Home | History | Annotate | Line # | Download | only in notes
      1 .. Copyright (C) Internet Systems Consortium, Inc. ("ISC")
      2 ..
      3 .. SPDX-License-Identifier: MPL-2.0
      4 ..
      5 .. This Source Code Form is subject to the terms of the Mozilla Public
      6 .. License, v. 2.0.  If a copy of the MPL was not distributed with this
      7 .. file, you can obtain one at https://mozilla.org/MPL/2.0/.
      8 ..
      9 .. See the COPYRIGHT file distributed with this work for additional
     10 .. information regarding copyright ownership.
     11 
     12 Notes for BIND 9.20.5
     13 ---------------------
     14 
     15 Security Fixes
     16 ~~~~~~~~~~~~~~
     17 
     18 - DNS-over-HTTPS flooding fixes. :cve:`2024-12705`
     19 
     20   Fix DNS-over-HTTPS implementation issues that arise under heavy
     21   query load. Optimize resource usage for :iscman:`named` instances that
     22   accept queries over DNS-over-HTTPS.
     23 
     24   Previously, :iscman:`named` processed all incoming HTTP/2 data at
     25   once, which could overwhelm the server, especially when dealing with
     26   clients that sent requests but did not wait for responses. That has been
     27   fixed. Now, :iscman:`named` handles HTTP/2 data in smaller chunks and
     28   throttles reading until the remote side reads the response data. It
     29   also throttles clients that send too many requests at once.
     30 
     31   In addition, :iscman:`named` now evaluates excessive streams opened by
     32   clients that include no DNS data, which is considered "flooding." It
     33   logs these clients and drops connections from them. :gl:`#4795`
     34 
     35   In some cases, :iscman:`named` could leave DNS-over-HTTPS
     36   connections in the `CLOSE_WAIT` state indefinitely. That has also been
     37   fixed. :gl:`#5083`
     38 
     39   ISC would like to thank Jean-Franois Billaud for his assistance with
     40   investigating this issue.
     41 
     42 - Limit additional section processing for large RDATA sets.
     43   :cve:`2024-11187`
     44 
     45   When answering queries, don't add data to the additional section if
     46   the answer has more than 13 names in the RDATA. This limits the number
     47   of lookups into the database(s) during a single client query, reducing
     48   the query-processing load. :gl:`#5034`
     49 
     50   ISC would like to thank Toshifumi Sakaguchi for bringing this
     51   vulnerability to our attention.
     52 
     53 New Features
     54 ~~~~~~~~~~~~
     55 
     56 - Add Extended DNS Error Code 22 - No Reachable Authority.
     57 
     58   When the resolver is trying to query an authoritative server and
     59   eventually times out, a SERVFAIL answer is given to the client. Add
     60   the Extended DNS Error Code 22 - No Reachable Authority to the
     61   response. :gl:`#2268`
     62 
     63 - Add a new option to configure the maximum number of outgoing queries
     64   per client request.
     65 
     66   The configuration option :any:`max-query-count` sets how many outgoing
     67   queries per client request are allowed. The existing
     68   :any:`max-recursion-queries` value is the number of permissible queries for a
     69   single name and is reset on every CNAME redirection. This new option
     70   is a global limit on the client request. The default is 200.
     71 
     72   The default for :any:`max-recursion-queries` is changed from 32 to
     73   50. This allows :any:`named` to send a few more queries
     74   while looking up a single name. :gl:`#4980` :gl:`#4921`
     75 
     76 - Use the Server Name Indication (SNI) extension for all outgoing TLS
     77   connections.
     78 
     79   This improves compatibility with other DNS server software.
     80   :gl:`#5099`
     81 
     82 Feature Changes
     83 ~~~~~~~~~~~~~~~
     84 
     85 - Performance optimization for NSEC3 lookups introduced in BIND 9.20.2 was
     86   reverted to avoid risks associated with a complex code change. :gl:`#5108`
     87 
     88 - The configuration clauses ``parental-agents`` and ``primaries`` are renamed to
     89   :any:`remote-servers`.
     90 
     91   The top blocks ``primaries`` and ``parental-agents`` are no longer
     92   preferred and should be renamed to :any:`remote-servers`. The zone
     93   statements :any:`parental-agents` and :any:`primaries` are still used, and may
     94   refer to any :any:`remote-servers` top block. :gl:`#4544`
     95 
     96 - Add `none` parameter to :namedconf:ref:`query-source` and
     97   :namedconf:ref:`query-source-v6` to disable IPv4 or IPv6 upstream queries but
     98   allow listening to queries from clients on IPv4 or IPv6. :gl:`#4981`
     99 
    100 Bug Fixes
    101 ~~~~~~~~~
    102 
    103 - Fix :iscman:`nsupdate` hang when processing a large update.
    104 
    105   To mitigate DNS flood attacks over a single TCP connection, throttle
    106   the connection when the other side does not read the data. Throttling
    107   should only occur on server-side sockets, but erroneously also
    108   happened for :iscman:`nsupdate`, which acts as a client. When
    109   :iscman:`nsupdate` started throttling the connection, it never
    110   attempted to read again. This has been fixed. :gl:`#4910`
    111 
    112 - Fix possible assertion failure when reloading server while processing
    113   update policy rules. :gl:`#5006`
    114 
    115 - Preserve cache across reconfig when using :any:`attach-cache`.
    116 
    117   When the :any:`attach-cache` option is used in the ``options`` block with an
    118   arbitrary name, it causes all views to use the same cache. Previously,
    119   this configuration caused the cache to be deleted and a new cache
    120   to be created every time the server was reconfigured. This has been fixed.
    121   :gl:`#5061`
    122 
    123 - Resolve the spurious drops in performance due to glue cache.
    124 
    125   For performance reasons, the returned glue records are cached on the
    126   first use.  The current implementation could randomly cause a
    127   performance drop and increased memory use.  This has been fixed.
    128   :gl:`#5064`
    129 
    130 - Fix :iscman:`dnssec-signzone` signing non-DNSKEY RRsets with revoked keys.
    131 
    132   :any:`dnssec-signzone` was using revoked keys for signing RRsets other than
    133   DNSKEY.  This has been corrected. :gl:`#5070`
    134 
    135 - Fix improper handling of unknown directives in ``resolv.conf``.
    136 
    137   The line after an unknown directive in ``resolv.conf`` could accidentally be
    138   skipped, potentially affecting :iscman:`dig`, :iscman:`host`,
    139   :iscman:`nslookup`, :iscman:`nsupdate`, or :iscman:`delv`. This has been
    140   fixed. :gl:`#5084`
    141 
    142 - Fix response policy zones and catalog zones with an ``$INCLUDE`` statement
    143   defined.
    144 
    145   Response policy zones (RPZ) and catalog zones were not working
    146   correctly if they had an ``$INCLUDE`` statement defined. This has been
    147   fixed. :gl:`#5111`
    148 
    149 
    150