diff --git a/CHANGES b/CHANGES index b6f995ede7..aa43bc93e3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,8 @@ 5321. [bug] Obtain write lock before updating version->records and version->bytes. [GL #1341] + --- 9.14.8 released --- + 5315. [bug] Apply the inital RRSIG expiration spread fixed to all dynamically created records in the zone including NSEC3. Also fix the signature clusters @@ -23,6 +25,9 @@ 5307. [bug] Fix hang when named-compilezone output is sent to pipe. Thanks to Tony Finch. [GL !2481] +5306. [security] Set a limit on the number of concurrently served + pipelined TCP queries. (CVE-2019-6477) [GL #1264] + 5305. [bug] NSEC Aggressive Cache ("synth-from-dnssec") has been disabled by default because it was found to have a significant performance impact on the recursive diff --git a/README b/README index dcf96092b2..7b91d6acc3 100644 --- a/README +++ b/README @@ -179,6 +179,11 @@ BIND 9.14.7 BIND 9.14.7 is a maintenance release, and also addresses the security vulnerabilities disclosed in CVE-2019-6475 and CVE-2019-6476. +BIND 9.14.8 + +BIND 9.14.8 is a maintenance release, and also addresses the security +vulnerability disclosed in CVE-2019-6477. + Building BIND Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler, diff --git a/README.md b/README.md index 8dbb5f40ee..09dbe15ecd 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,11 @@ BIND 9.14.6 is a maintenance release. BIND 9.14.7 is a maintenance release, and also addresses the security vulnerabilities disclosed in CVE-2019-6475 and CVE-2019-6476. +#### BIND 9.14.8 + +BIND 9.14.8 is a maintenance release, and also addresses the security +vulnerability disclosed in CVE-2019-6477. + ### Building BIND Minimally, BIND requires a UNIX or Linux system with an ANSI C compiler, diff --git a/doc/arm/Bv9ARM.ch01.html b/doc/arm/Bv9ARM.ch01.html index 5d6fa1b8da..ebad8d93d7 100644 --- a/doc/arm/Bv9ARM.ch01.html +++ b/doc/arm/Bv9ARM.ch01.html @@ -614,6 +614,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch02.html b/doc/arm/Bv9ARM.ch02.html index 1b8f956d43..140c94dd13 100644 --- a/doc/arm/Bv9ARM.ch02.html +++ b/doc/arm/Bv9ARM.ch02.html @@ -146,6 +146,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch03.html b/doc/arm/Bv9ARM.ch03.html index bdcf94d8e5..73e8b9e8ea 100644 --- a/doc/arm/Bv9ARM.ch03.html +++ b/doc/arm/Bv9ARM.ch03.html @@ -856,6 +856,6 @@ controls { -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch04.html b/doc/arm/Bv9ARM.ch04.html index c2a600aaaa..2789205f17 100644 --- a/doc/arm/Bv9ARM.ch04.html +++ b/doc/arm/Bv9ARM.ch04.html @@ -2863,6 +2863,6 @@ $ORIGIN 0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch05.html b/doc/arm/Bv9ARM.ch05.html index bacf9087ab..1269871cc7 100644 --- a/doc/arm/Bv9ARM.ch05.html +++ b/doc/arm/Bv9ARM.ch05.html @@ -3190,7 +3190,7 @@ badresp:1,adberr:0,findfail:0,valfail:0] the first time; if unsuccessful, the server will will terminate, under the assumption that another server is already running. If not specified, the default is - /var/run/named/named.lock. + none.

Specifying lock-file none disables the @@ -3794,15 +3794,21 @@ options {

automatic-interface-scan

- If yes and supported by the OS, - automatically rescan network interfaces when the interface - addresses are added or removed. The default is - yes. + If yes and supported by the operating + system, automatically rescan network interfaces when the + interface addresses are added or removed. The default is + yes. This configuration option does + not affect time based interface-interval + option, and it is recommended to set the time based + interface-interval to 0 when the operator + confirms that automatic interface scanning is supported by the + operating system.

- Currently the OS needs to support routing sockets for - automatic-interface-scan to be - supported. + The automatic-interface-scan implementation + uses routing sockets for the network interface discovery, + and therefore the operating system has to support the routing + sockets for this feature to work.

allow-new-zones
@@ -4311,6 +4317,17 @@ options { response to a UDP request from a cookie aware client. BADCOOKIE is sent if there is a bad or no existent server cookie. + The default is no. +

+

+ Set this to yes to test that DNS + COOKIE clients correctly handle BADCOOKIE or if you are + getting a lot of forged DNS requests with DNS COOKIES + present. Setting this to yes will + result in reduced amplification effect in a reflection + attack, as the BADCOOKIE response will be smaller than + a full response, while also requiring a legitimate client + to follow up with a second query with the new, valid, cookie.

answer-cookie
@@ -4353,6 +4370,7 @@ options { do not send a correct COOKIE option may be limited to receiving smaller responses via the nocookie-udp-size option. + The default is yes.

stale-answer-enable
@@ -4978,7 +4996,9 @@ options {

Synthesize answers from cached NSEC, NSEC3 and other RRsets that have been proved to be correct - using DNSSEC. The default is yes. + using DNSSEC. The default is no, + but it will become yes again + in the future releases.

Note: @@ -6495,10 +6515,11 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; minutes. The default is 60 minutes. The maximum value is 28 days (40320 minutes). If set to 0, interface scanning will only occur when - the configuration file is loaded. After the scan, the - server will - begin listening for queries on any newly discovered - interfaces (provided they are allowed by the + the configuration file is loaded, or when + automatic-interface-scan is enabled + and supported by the operating system. After the scan, the + server will begin listening for queries on any newly + discovered interfaces (provided they are allowed by the listen-on configuration), and will stop listening on interfaces that have gone away. For convenience, TTL-style time unit suffixes may be @@ -6537,7 +6558,8 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; The first element (which may be an IP address, an IP prefix, an ACL name or a nested address_match_list) of each top level list is checked against the source address of - the query until a match is found. + the query until a match is found. When the addresses in the + first element overlap, the first rule to match gets selected.

Once the source address of the query has been matched, if the @@ -6849,6 +6871,20 @@ avoid-v6-udp-ports { 40000; range 50000 60000; }; rndc serve-stale on.

+
resolver-nonbackoff-tries
+
+

+ Specifies how many retries occur before exponential + backoff kicks in. The default is 3. +

+
+
resolver-retry-interval
+
+

+ The base retry interval in milliseconds. + The default is 800. +

+
sig-validity-interval

@@ -14897,6 +14933,6 @@ HOST-127.EXAMPLE. MX 0 . -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch06.html b/doc/arm/Bv9ARM.ch06.html index b35d11fb5a..9e803bb133 100644 --- a/doc/arm/Bv9ARM.ch06.html +++ b/doc/arm/Bv9ARM.ch06.html @@ -362,6 +362,6 @@ allow-query { !{ !10/8; any; }; key example; }; -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch07.html b/doc/arm/Bv9ARM.ch07.html index 48b233c975..2c23684801 100644 --- a/doc/arm/Bv9ARM.ch07.html +++ b/doc/arm/Bv9ARM.ch07.html @@ -191,6 +191,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch08.html b/doc/arm/Bv9ARM.ch08.html index b78dbe9a58..426217c2a8 100644 --- a/doc/arm/Bv9ARM.ch08.html +++ b/doc/arm/Bv9ARM.ch08.html @@ -36,15 +36,21 @@

Table of Contents

-
Release Notes for BIND Version 9.14.7
+
Release Notes for BIND Version 9.14.8
Introduction
Note on Version Numbering
Supported Platforms
Download
-
Security Fixes
-
New Features
-
Bug Fixes
+
Notes for BIND 9.14.8
+
Notes for BIND 9.14.7
+
Notes for BIND 9.14.6
+
Notes for BIND 9.14.5
+
Notes for BIND 9.14.4
+
Notes for BIND 9.14.3
+
Notes for BIND 9.14.2
+
Notes for BIND 9.14.1
+
Notes for BIND 9.14.0
License
End of Life
Thank You
@@ -53,7 +59,7 @@

-Release Notes for BIND Version 9.14.7

+Release Notes for BIND Version 9.14.8

@@ -119,183 +125,845 @@ Download

The latest versions of BIND 9 software can always be found at - http://www.isc.org/downloads/. + https://www.isc.org/download/. There you will find additional information about each release, source code, and pre-compiled versions for Microsoft Windows operating systems.

+

-Security Fixes

-
    -
  • -

    - A race condition could trigger an assertion failure when - a large number of incoming packets were being rejected. - This flaw is disclosed in CVE-2019-6471. [GL #942] -

    -
  • -
  • -

    - named could crash with an assertion failure - if a forwarder returned a referral, rather than resolving the - query, when QNAME minimization was enabled. This flaw is - disclosed in CVE-2019-6476. [GL #1051] -

    -
  • -
  • -

    - A flaw in DNSSEC verification when transferring mirror zones - could allow data to be incorrectly marked valid. This flaw - is disclosed in CVE-2019-6475. [GL #1252] -

    -
  • -
+Notes for BIND 9.14.8
+ +
+

+Security Fixes

+
  • +

    + Set a limit on the number of concurrently served pipelined TCP + queries. This flaw is disclosed in CVE-2019-6477. [GL #1264] +

    +
+
+ +
+

+New Features

+
  • +

    + Added a new statistics variable tcp-highwater + that reports the maximum number of simultaneous TCP clients BIND + has handled while running. [GL #1206] +

    +
+
+ +
+

+Feature Changes

+
  • +

    + NSEC Aggressive Cache (synth-from-dnssec) has been disabled by default + because it was found to have a significant performance impact on the + recursive service. The NSEC Aggressive Cache will be enable by default + in the future releases. [GL #1265] +

    +
+
+

-New Features

-
    +Notes for BIND 9.14.7
+ +
+

+Security Fixes

+
  • -

    - The new GeoIP2 API from MaxMind is now supported when BIND - is compiled using configure --with-geoip2. - The legacy GeoIP API can be used by compiling with - configure --with-geoip instead. (Note that - the databases for the legacy API are no longer maintained by - MaxMind.) -

    -

    - The default path to the GeoIP2 databases will be set based - on the location of the libmaxminddb library; - for example, if it is in /usr/local/lib, - then the default path will be - /usr/local/share/GeoIP. - This value can be overridden in named.conf - using the geoip-directory option. -

    -

    - Some geoip ACL settings that were available with - legacy GeoIP, including searches for netspeed, - org, and three-letter ISO country codes, will - no longer work when using GeoIP2. Supported GeoIP2 database - types are country, city, - domain, isp, and - as. All of the databases support both IPv4 - and IPv6 lookups. [GL #182] -

    -
  • +

    + named could crash with an assertion failure + if a forwarder returned a referral, rather than resolving the + query, when QNAME minimization was enabled. This flaw is + disclosed in CVE-2019-6476. [GL #1051] +

    +
  • -

    - Two new metrics have been added to the - statistics-channel to report DNSSEC - signing operations. For each key in each zone, the - dnssec-sign counter indicates the total - number of signatures named has generated - using that key since server startup, and the - dnssec-refresh counter indicates how - many of those signatures were refreshed during zone - maintenance, as opposed to having been generated - as a result of a zone update. [GL #513] -

    -
  • -
  • -

    - A SipHash 2-4 based DNS Cookie (RFC 7873) algorithm has been added. - [GL #605] -

    -

    - If you are running multiple DNS Servers (different versions of BIND 9 - or DNS server from multiple vendors) responding from the same IP - address (anycast or load-balancing scenarios), you'll have to make - sure that all the servers are configured with the same DNS Cookie - algorithm and same Server Secret for the best performance. -

    -
  • -
  • -

    - DS records included in DNS referral messages can now be validated - and cached immediately, reducing the number of queries needed for - a DNSSEC validation. [GL #964] -

    -
  • +

    + A flaw in DNSSEC verification when transferring mirror zones + could allow data to be incorrectly marked valid. This flaw + is disclosed in CVE-2019-6475. [GL #1252] +

    +
+
+

-Bug Fixes

-
    -
  • -

    - When qname-minimization was set to - relaxed, some improperly configured domains - would fail to resolve, but would have succeeded when minimization - was disabled. named will now fall back to normal - resolution in such cases, and also uses type A rather than NS for - minimal queries in order to reduce the likelihood of encountering - the problem. [GL #1055] -

    -
  • -
  • -

    - Glue address records were not being returned in responses - to root priming queries; this has been corrected. [GL #1092] -

    -
  • -
  • -

    - Interaction between DNS64 and RPZ No Data rule (CNAME *.) could - cause unexpected results; this has been fixed. [GL #1106] -

    -
  • -
  • -

    - named-checkconf now checks DNS64 prefixes - to ensure bits 64-71 are zero. [GL #1159] -

    -
  • -
  • -

    - named-checkconf could crash during - configuration if configured to use "geoip continent" ACLs with - legacy GeoIP. [GL #1163] -

    -
  • -
  • -

    - named-checkconf now correctly reports a missing - dnstap-output option when - dnstap is set. [GL #1136] -

    -
  • -
  • -

    - Handle ETIMEDOUT error on connect() with a non-blocking - socket. [GL #1133] -

    -
  • -
  • -

    - Cache database statistics counters could report invalid values - when stale answers were enabled, because of a bug in counter - maintenance when cache data becomes stale. The statistics counters - have been corrected to report the number of RRsets for each - RR type that are active, stale but still potentially served, - or stale and marked for deletion. [GL #602] -

    -
  • -
  • -

    - When a response-policy zone expires, ensure - that its policies are removed from the RPZ summary database. - [GL #1146] -

    -
  • -
+Notes for BIND 9.14.6
+ +
+

+Bug Fixes

+
  • +

    + When a response-policy zone expires, ensure + that its policies are removed from the RPZ summary database. + [GL #1146] +

    +
+
+

+Notes for BIND 9.14.5

+ +
+

+New Features

+
    +
  • +

    + A SipHash 2-4 based DNS Cookie (RFC 7873) algorithm has been added. + [GL #605] +

    +

    + If you are running multiple DNS Servers (different versions of BIND 9 + or DNS server from multiple vendors) responding from the same IP + address (anycast or load-balancing scenarios), you'll have to make + sure that all the servers are configured with the same DNS Cookie + algorithm and same Server Secret for the best performance. +

    +
  • +
  • +

    + DS records included in DNS referral messages can now be validated + and cached immediately, reducing the number of queries needed for + a DNSSEC validation. [GL #964] +

    +
  • +
+
+ +
+

+Bug Fixes

+
    +
  • +

    + Cache database statistics counters could report invalid values + when stale answers were enabled, because of a bug in counter + maintenance when cache data becomes stale. The statistics counters + have been corrected to report the number of RRsets for each + RR type that are active, stale but still potentially served, + or stale and marked for deletion. [GL #602] +

    +
  • +
  • +

    + Interaction between DNS64 and RPZ No Data rule (CNAME *.) could + cause unexpected results; this has been fixed. [GL #1106] +

    +
  • +
  • +

    + named-checkconf now checks DNS64 prefixes + to ensure bits 64-71 are zero. [GL #1159] +

    +
  • +
  • +

    + named-checkconf could crash during + configuration if configured to use "geoip continent" ACLs with + legacy GeoIP. [GL #1163] +

    +
  • +
  • +

    + named-checkconf now correctly reports a missing + dnstap-output option when + dnstap is set. [GL #1136] +

    +
  • +
  • +

    + Handle ETIMEDOUT error on connect() with a non-blocking + socket. [GL #1133] +

    +
  • +
+
+ +
+
+

+Notes for BIND 9.14.4

+ +
+

+New Features

+
    +
  • +

    + The new GeoIP2 API from MaxMind is now supported when BIND + is compiled using configure --with-geoip2. + The legacy GeoIP API can be used by compiling with + configure --with-geoip instead. (Note that + the databases for the legacy API are no longer maintained by + MaxMind.) +

    +

    + The default path to the GeoIP2 databases will be set based + on the location of the libmaxminddb library; + for example, if it is in /usr/local/lib, + then the default path will be + /usr/local/share/GeoIP. + This value can be overridden in named.conf + using the geoip-directory option. +

    +

    + Some geoip ACL settings that were available with + legacy GeoIP, including searches for netspeed, + org, and three-letter ISO country codes, will + no longer work when using GeoIP2. Supported GeoIP2 database + types are country, city, + domain, isp, and + as. All of the databases support both IPv4 + and IPv6 lookups. [GL #182] +

    +
  • +
  • +

    + Two new metrics have been added to the + statistics-channel to report DNSSEC + signing operations. For each key in each zone, the + dnssec-sign counter indicates the total + number of signatures named has generated + using that key since server startup, and the + dnssec-refresh counter indicates how + many of those signatures were refreshed during zone + maintenance, as opposed to having been generated + as a result of a zone update. [GL #513] +

    +
  • +
+
+ +
+

+Bug Fixes

+
  • +

    + Glue address records were not being returned in responses + to root priming queries; this has been corrected. [GL #1092] +

    +
+
+ +
+
+

+Notes for BIND 9.14.3

+ +
+

+Security Fixes

+
  • +

    + A race condition could trigger an assertion failure when + a large number of incoming packets were being rejected. + This flaw is disclosed in CVE-2019-6471. [GL #942] +

    +
+
+ +
+

+Bug Fixes

+
  • +

    + When qname-minimization was set to + relaxed, some improperly configured domains + would fail to resolve, but would have succeeded when minimization + was disabled. named will now fall back to normal + resolution in such cases, and also uses type A rather than NS for + minimal queries in order to reduce the likelihood of encountering + the problem. [GL #1055] +

    +
+
+ +
+
+

+Notes for BIND 9.14.2

+ +
+

+Feature Changes

+
  • +

    + When trusted-keys and + managed-keys are both configured for the + same name, or when trusted-keys is used to + configure a trust anchor for the root zone and + dnssec-validation is set to the default + value of auto, automatic RFC 5011 key + rollovers will fail. +

    +

    + This combination of settings was never intended to work, + but there was no check for it in the parser. This has been + corrected; a warning is now logged. (In BIND 9.15 and + higher this error will be fatal.) [GL #868] +

    +
+
+ +
+
+

+Notes for BIND 9.14.1

+ +
+

+Security Fixes

+
    +
  • +

    + In certain configurations, named could crash + with an assertion failure if nxdomain-redirect + was in use and a redirected query resulted in an NXDOMAIN from the + cache. This flaw is disclosed in CVE-2019-6467. [GL #880] +

    +
  • +
  • +

    + The TCP client quota set using the tcp-clients + option could be exceeded in some cases. This could lead to + exhaustion of file descriptors. (CVE-2018-5743) [GL #615] +

    +
  • +
+
+ +
+

+New Features

+
  • +

    + The new add-soa option specifies whether + or not the response-policy zone's SOA record + should be included in the additional section of RPZ responses. + [GL #865] +

    +
+
+ +
+

+Bug Fixes

+
  • +

    + The allow-update and + allow-update-forwarding options were + inadvertently treated as configuration errors when used at the + options or view level. + This has now been corrected. + [GL #913] +

    +
+
+ +
+
+

+Notes for BIND 9.14.0

+ +
+

+New Features

+
    +
  • +

    + Task manager and socket code have been substantially modified. + The manager uses per-cpu queues for tasks and network stack runs + multiple event loops in CPU-affinitive threads. This greatly + improves performance on large systems, especially when using + multi-queue NICs. +

    +
  • +
  • +

    + Support for QNAME minimization was added and enabled by default + in relaxed mode, in which BIND will fall back + to normal resolution if the remote server returns something + unexpected during the query minimization process. This default + setting might change to strict in the future. +

    +
  • +
  • +

    + A new plugin mechanism has been added to allow + extension of query processing functionality through the use of + external libraries. The new filter-aaaa.so + plugin replaces the filter-aaaa feature that + was formerly implemented as a native part of BIND. +

    +

    + The plugin API is a work in progress and is likely to evolve + as further plugins are implemented. [GL #15] +

    +
  • +
  • +

    + A new secondary zone option, mirror, + enables named to serve a transferred copy + of a zone's contents without acting as an authority for the + zone. A zone must be fully validated against an active trust + anchor before it can be used as a mirror zone. DNS responses + from mirror zones do not set the AA bit ("authoritative answer"), + but do set the AD bit ("authenticated data"). This feature is + meant to facilitate deployment of a local copy of the root zone, + as described in RFC 7706. [GL #33] +

    +
  • +
  • +

    + BIND now can be compiled against the libidn2 + library to add IDNA2008 support. Previously, BIND supported + IDNA2003 using the (now obsolete and unsupported) + idnkit-1 library. +

    +
  • +
  • +

    + named now supports the "root key sentinel" + mechanism. This enables validating resolvers to indicate + which trust anchors are configured for the root, so that + information about root key rollover status can be gathered. + To disable this feature, add + root-key-sentinel no; to + named.conf. [GL #37] +

    +
  • +
  • +

    + The dnskey-sig-validity option allows the + sig-validity-interval to be overriden for + signatures covering DNSKEY RRsets. [GL #145] +

    +
  • +
  • +

    + When built on Linux, BIND now requires the libcap + library to set process privileges. The adds a new compile-time + dependency, which can be met on most Linux platforms by installing the + libcap-dev or libcap-devel + package. BIND can also be built without capability support by using + configure --disable-linux-caps, at the cost of some + loss of security. +

    +
  • +
  • +

    + The validate-except option specifies a list of + domains beneath which DNSSEC validation should not be performed, + regardless of whether a trust anchor has been configured above + them. [GL #237] +

    +
  • +
  • +

    + Two new update policy rule types have been added + krb5-selfsub and ms-selfsub + which allow machines with Kerberos principals to update + the name space at or below the machine names identified + in the respective principals. +

    +
  • +
  • +

    + The new configure option --enable-fips-mode + can be used to make BIND enable and enforce FIPS mode in the + OpenSSL library. When compiled with such option the BIND will + refuse to run if FIPS mode can't be enabled, thus this option + must be only enabled for the systems where FIPS mode is available. +

    +
  • +
  • +

    + Two new configuration options min-cache-ttl and + min-ncache-ttl has been added to allow the BIND 9 + administrator to override the minimum TTL in the received DNS records + (positive caching) and for storing the information about non-existent + records (negative caching). The configured minimum TTL for both + configuration options cannot exceed 90 seconds. +

    +
  • +
  • +

    + rndc status output now includes a + reconfig/reload in progress status line if named + configuration is being reloaded. +

    +
  • +
  • +

    + The new answer-cookie option, if set to + no, prevents named from + returning a DNS COOKIE option to a client, even if such an + option was present in the request. This is only intended as + a temporary measure, for use when named + shares an IP address with other servers that do not yet + support DNS COOKIE. A mismatch between servers on the same + address is not expected to cause operational problems, but the + option to disable COOKIE responses so that all servers have the + same behavior is provided out of an abundance of caution. + DNS COOKIE is an important security mechanism, and this option + should not be used to disable it unless absolutely necessary. +

    +
  • +
+
+ +
+

+Removed Features

+
    +
  • +

    + Workarounds for servers that misbehave when queried with EDNS + have been removed, because these broken servers and the + workarounds for their noncompliance cause unnecessary delays, + increase code complexity, and prevent deployment of new DNS + features. See https://dnsflagday.net + for further details. +

    +

    + In particular, resolution will no longer fall back to + plain DNS when there was no response from an authoritative + server. This will cause some domains to become non-resolvable + without manual intervention. In these cases, resolution can + be restored by adding server clauses for the + offending servers, specifying edns no or + send-cookie no, depending on the specific + noncompliance. +

    +

    + To determine which server clause to use, run + the following commands to send queries to the authoritative + servers for the broken domain: +

    +


    +          dig soa <zone> @<server> +dnssec
    +          dig soa <zone> @<server> +dnssec +nocookie
    +          dig soa <zone> @<server> +noedns
    +

    +

    + If the first command fails but the second succeeds, the + server most likely needs send-cookie no. + If the first two fail but the third succeeds, then the server + needs EDNS to be fully disabled with edns no. +

    +

    + Please contact the administrators of noncompliant domains + and encourage them to upgrade their broken DNS servers. [GL #150] +

    +
  • +
  • +

    + Previously, it was possible to build BIND without thread support + for old architectures and systems without threads support. + BIND now requires threading support (either POSIX or Windows) from + the operating system, and it cannot be built without threads. +

    +
  • +
  • +

    + The filter-aaaa, + filter-aaaa-on-v4, and + filter-aaaa-on-v6 options have been removed + from named, and can no longer be + configured using native named.conf syntax. + However, loading the new filter-aaaa.so + plugin and setting its parameters provides identical + functionality. +

    +
  • +
  • +

    + named can no longer use the EDNS CLIENT-SUBNET + option for view selection. In its existing form, the authoritative + ECS feature was not fully RFC-compliant, and could not realistically + have been deployed in production for an authoritative server; its + only practical use was for testing and experimentation. In the + interest of code simplification, this feature has now been removed. +

    +

    + The ECS option is still supported in dig and + mdig via the +subnet argument, and can be parsed + and logged when received by named, but + it is no longer used for ACL processing. The + geoip-use-ecs option is now obsolete; + a warning will be logged if it is used in + named.conf. + ecs tags in an ACL definition are + also obsolete, and will cause the configuration to fail to + load if they are used. [GL #32] +

    +
  • +
  • +

    + dnssec-keygen can no longer generate HMAC + keys for TSIG authentication. Use tsig-keygen + to generate these keys. [RT #46404] +

    +
  • +
  • +

    + Support for OpenSSL 0.9.x has been removed. OpenSSL version + 1.0.0 or greater, or LibreSSL is now required. +

    +
  • +
  • +

    + The configure --enable-seccomp option, + which formerly turned on system-call filtering on Linux, has + been removed. [GL #93] +

    +
  • +
  • +

    + IPv4 addresses in forms other than dotted-quad are no longer + accepted in master files. [GL #13] [GL #56] +

    +
  • +
  • +

    + IDNA2003 support via (bundled) idnkit-1.0 has been removed. +

    +
  • +
  • +

    + The "rbtdb64" database implementation (a parallel + implementation of "rbt") has been removed. [GL #217] +

    +
  • +
  • +

    + The -r randomdev option to explicitly select + random device has been removed from the + ddns-confgen, + rndc-confgen, + nsupdate, + dnssec-confgen, and + dnssec-signzone commands. +

    +

    + The -p option to use pseudo-random data + has been removed from the dnssec-signzone + command. +

    +
  • +
  • +

    + Support for the RSAMD5 algorithm has been removed freom BIND as + the usage of the RSAMD5 algorithm for DNSSEC has been deprecated + in RFC6725, the security of the MD5 algorithm has been compromised, + and its usage is considered harmful. +

    +
  • +
  • +

    + Support for the ECC-GOST (GOST R 34.11-94) algorithm has been + removed from BIND, as the algorithm has been superseded by + GOST R 34.11-2012 in RFC6986 and it must not be used in new + deployments. BIND will neither create new DNSSEC keys, + signatures and digests, nor it will validate them. +

    +
  • +
  • +

    + Support for DSA and DSA-NSEC3-SHA1 algorithms has been + removed from BIND as the DSA key length is limited to 1024 + bits and this is not considered secure enough. +

    +
  • +
  • +

    + named will no longer ignore "no-change" deltas + when processing an IXFR stream. This had previously been + permitted for compatibility with BIND 8, but now "no-change" + deltas will trigger a fallback to AXFR as the recovery mechanism. +

    +
  • +
  • +

    + BIND 9 will no longer build on platforms that don't have + proper IPv6 support. BIND 9 now also requires POSIX-compatible + pthread support. Most of the platforms that lack these featuers + are long past their end-of-lifew dates, and they are neither + developed nor supported by their respective vendors. +

    +
  • +
  • +

    + The incomplete support for internationalization message catalogs has + been removed from BIND. Since the internationalization was never + completed, and no localized message catalogs were ever made available + for the portions of BIND in which they could have been used, this + change will have no effect except to simplify the source code. BIND's + log messages and other output were already only available in English. +

    +
  • +
+
+ +
+

+Feature Changes

+
    +
  • +

    + BIND will now always use the best CSPRNG (cryptographically-secure + pseudo-random number generator) available on the platform where + it is compiled. It will use the arc4random() + family of functions on BSD operating systems, + getrandom() on Linux and Solaris, + CryptGenRandom on Windows, and the selected + cryptography provider library (OpenSSL or PKCS#11) as the last + resort. [GL #221] +

    +
  • +
  • +

    + The default setting for dnssec-validation is + now auto, which activates DNSSEC + validation using the IANA root key. (The default can be changed + back to yes, which activates DNSSEC + validation only when keys are explicitly configured in + named.conf, by building BIND with + configure --disable-auto-validation.) [GL #30] +

    +
  • +
  • +

    + BIND can no longer be built without DNSSEC support. A cryptography + provider (i.e., OpenSSL or a hardware service module with + PKCS#11 support) must be available. [GL #244] +

    +
  • +
  • +

    + Zone types primary and + secondary are now available as synonyms for + master and slave, + respectively, in named.conf. +

    +
  • +
  • +

    + named will now log a warning if the old + root DNSSEC key is explicitly configured and has not been updated. + [RT #43670] +

    +
  • +
  • +

    + dig +nssearch will now list name servers + that have timed out, in addition to those that respond. [GL #64] +

    +
  • +
  • +

    + Up to 64 response-policy zones are now + supported by default; previously the limit was 32. [GL #123] +

    +
  • +
  • +

    + Several configuration options for time periods can now use + TTL value suffixes (for example, 2h or + 1d) in addition to an integer number of + seconds. These include + fstrm-set-reopen-interval, + interface-interval, + max-cache-ttl, + max-ncache-ttl, + max-policy-ttl, and + min-update-interval. + [GL #203] +

    +
  • +
  • +

    + NSID logging (enabled by the request-nsid + option) now has its own nsid category, + instead of using the resolver category. +

    +
  • +
  • +

    + The rndc nta command could not differentiate + between views of the same name but different class; this + has been corrected with the addition of a -class + option. [GL #105] +

    +
  • +
  • +

    + allow-recursion-on and + allow-query-cache-on each now default to + the other if only one of them is set, in order to be consistent + with the way allow-recursion and + allow-query-cache work. [GL #319] +

    +
  • +
  • +

    + When compiled with IDN support, the dig and + nslookup commands now disable IDN processing + when the standard output is not a TTY (i.e., when the output + is not being read by a human). When running from a shell + script, the command line options +idnin and + +idnout may be used to enable IDN + processing of input and output domain names, respectively. + When running on a TTY, the +noidnin and + +noidnout options may be used to disable + IDN processing of input and output domain names. +

    +
  • +
  • +

    + The configuration option max-ncache-ttl cannot + exceed seven days. Previously, larger values than this were silently + lowered; now, they trigger a configuration error. +

    +
  • +
  • +

    + The new dig -r command line option + disables reading of the file $HOME/.digrc. +

    +
  • +
  • +

    + Zone signing and key maintenance events are now logged to the + dnssec category rather than + zone. +

    +
  • +
+
+ +
+ +
+

License

BIND is open source software licensed under the terms of the Mozilla @@ -325,7 +993,7 @@ For those needing long term support, the current Extended Support Version (ESV) is BIND 9.11, which will be supported until at least December 2021. See - https://www.isc.org/downloads/software-support-policy/ + https://kb.isc.org/docs/aa-00896 for details of ISC's software support policy.

@@ -336,7 +1004,7 @@ Thank you to everyone who assisted us in making this release possible. If you would like to contribute to ISC to assist us in continuing to make quality open source software, please visit our donations page at - http://www.isc.org/donate/. + https://www.isc.org/donate/.

@@ -359,6 +1027,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch09.html b/doc/arm/Bv9ARM.ch09.html index 1819558b0a..4ee8aeec3b 100644 --- a/doc/arm/Bv9ARM.ch09.html +++ b/doc/arm/Bv9ARM.ch09.html @@ -148,6 +148,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch10.html b/doc/arm/Bv9ARM.ch10.html index 8b5fe5f340..81ba80ab46 100644 --- a/doc/arm/Bv9ARM.ch10.html +++ b/doc/arm/Bv9ARM.ch10.html @@ -914,6 +914,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch11.html b/doc/arm/Bv9ARM.ch11.html index fc52d7af62..bc1ed65e51 100644 --- a/doc/arm/Bv9ARM.ch11.html +++ b/doc/arm/Bv9ARM.ch11.html @@ -533,6 +533,6 @@ $ sample-update -a sample-update -k Kxxx.+nnn+mm -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.ch12.html b/doc/arm/Bv9ARM.ch12.html index dad2f78633..40f469d6a4 100644 --- a/doc/arm/Bv9ARM.ch12.html +++ b/doc/arm/Bv9ARM.ch12.html @@ -210,6 +210,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.html b/doc/arm/Bv9ARM.html index 4b615aabe4..a7e2ff9939 100644 --- a/doc/arm/Bv9ARM.html +++ b/doc/arm/Bv9ARM.html @@ -32,7 +32,7 @@

BIND 9 Administrator Reference Manual

-

BIND Version 9.14.7

+

BIND Version 9.14.8


@@ -242,15 +242,21 @@
A. Release Notes
-
Release Notes for BIND Version 9.14.7
+
Release Notes for BIND Version 9.14.8
Introduction
Note on Version Numbering
Supported Platforms
Download
-
Security Fixes
-
New Features
-
Bug Fixes
+
Notes for BIND 9.14.8
+
Notes for BIND 9.14.7
+
Notes for BIND 9.14.6
+
Notes for BIND 9.14.5
+
Notes for BIND 9.14.4
+
Notes for BIND 9.14.3
+
Notes for BIND 9.14.2
+
Notes for BIND 9.14.1
+
Notes for BIND 9.14.0
License
End of Life
Thank You
@@ -438,6 +444,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/Bv9ARM.pdf b/doc/arm/Bv9ARM.pdf index 2fe1a892ee..8360e67cec 100644 Binary files a/doc/arm/Bv9ARM.pdf and b/doc/arm/Bv9ARM.pdf differ diff --git a/doc/arm/man.arpaname.html b/doc/arm/man.arpaname.html index b01eb01581..4ad4028f7c 100644 --- a/doc/arm/man.arpaname.html +++ b/doc/arm/man.arpaname.html @@ -90,6 +90,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.ddns-confgen.html b/doc/arm/man.ddns-confgen.html index 3cf3cbef6a..09f4265d7f 100644 --- a/doc/arm/man.ddns-confgen.html +++ b/doc/arm/man.ddns-confgen.html @@ -220,6 +220,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.delv.html b/doc/arm/man.delv.html index d13a278933..a3c36b9c15 100644 --- a/doc/arm/man.delv.html +++ b/doc/arm/man.delv.html @@ -625,6 +625,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dig.html b/doc/arm/man.dig.html index c18bce9940..0d33ff10f6 100644 --- a/doc/arm/man.dig.html +++ b/doc/arm/man.dig.html @@ -1166,6 +1166,6 @@ dig +qr www.isc.org any -x 127.0.0.1 isc.org ns +noqr -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-cds.html b/doc/arm/man.dnssec-cds.html index 89c2bf2be9..8dc91038d2 100644 --- a/doc/arm/man.dnssec-cds.html +++ b/doc/arm/man.dnssec-cds.html @@ -376,6 +376,6 @@ nsupdate -l -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-checkds.html b/doc/arm/man.dnssec-checkds.html index 8784ff85bd..04ec160aeb 100644 --- a/doc/arm/man.dnssec-checkds.html +++ b/doc/arm/man.dnssec-checkds.html @@ -150,6 +150,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-coverage.html b/doc/arm/man.dnssec-coverage.html index 6acce99253..3cf3abcec0 100644 --- a/doc/arm/man.dnssec-coverage.html +++ b/doc/arm/man.dnssec-coverage.html @@ -270,6 +270,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-dsfromkey.html b/doc/arm/man.dnssec-dsfromkey.html index abc0d66c35..a0d3794138 100644 --- a/doc/arm/man.dnssec-dsfromkey.html +++ b/doc/arm/man.dnssec-dsfromkey.html @@ -352,6 +352,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-importkey.html b/doc/arm/man.dnssec-importkey.html index 877edb0468..76ae9adc95 100644 --- a/doc/arm/man.dnssec-importkey.html +++ b/doc/arm/man.dnssec-importkey.html @@ -250,6 +250,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-keyfromlabel.html b/doc/arm/man.dnssec-keyfromlabel.html index 3df6dfb33f..873985c9bd 100644 --- a/doc/arm/man.dnssec-keyfromlabel.html +++ b/doc/arm/man.dnssec-keyfromlabel.html @@ -498,6 +498,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-keygen.html b/doc/arm/man.dnssec-keygen.html index 90dc541dbd..c1a155f08d 100644 --- a/doc/arm/man.dnssec-keygen.html +++ b/doc/arm/man.dnssec-keygen.html @@ -557,6 +557,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-keymgr.html b/doc/arm/man.dnssec-keymgr.html index 878ae58f12..056e56dcbf 100644 --- a/doc/arm/man.dnssec-keymgr.html +++ b/doc/arm/man.dnssec-keymgr.html @@ -405,6 +405,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-revoke.html b/doc/arm/man.dnssec-revoke.html index c8d5357c5c..e32b5ed178 100644 --- a/doc/arm/man.dnssec-revoke.html +++ b/doc/arm/man.dnssec-revoke.html @@ -171,6 +171,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-settime.html b/doc/arm/man.dnssec-settime.html index c67e873033..56880e3764 100644 --- a/doc/arm/man.dnssec-settime.html +++ b/doc/arm/man.dnssec-settime.html @@ -349,6 +349,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-signzone.html b/doc/arm/man.dnssec-signzone.html index 8893a29453..d8da51cbf0 100644 --- a/doc/arm/man.dnssec-signzone.html +++ b/doc/arm/man.dnssec-signzone.html @@ -701,6 +701,6 @@ db.example.com.signed -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnssec-verify.html b/doc/arm/man.dnssec-verify.html index db48e9e4a8..9ee892e2f3 100644 --- a/doc/arm/man.dnssec-verify.html +++ b/doc/arm/man.dnssec-verify.html @@ -202,6 +202,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.dnstap-read.html b/doc/arm/man.dnstap-read.html index f580ed84b7..043ec311fb 100644 --- a/doc/arm/man.dnstap-read.html +++ b/doc/arm/man.dnstap-read.html @@ -143,6 +143,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.filter-aaaa.html b/doc/arm/man.filter-aaaa.html index 47ff58105d..538f245472 100644 --- a/doc/arm/man.filter-aaaa.html +++ b/doc/arm/man.filter-aaaa.html @@ -168,6 +168,6 @@ plugin query "/usr/local/lib/filter-aaaa.so" { -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.host.html b/doc/arm/man.host.html index fb8d5187c6..7d53162732 100644 --- a/doc/arm/man.host.html +++ b/doc/arm/man.host.html @@ -366,6 +366,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.mdig.html b/doc/arm/man.mdig.html index cbe9f59c4d..ac280a2f52 100644 --- a/doc/arm/man.mdig.html +++ b/doc/arm/man.mdig.html @@ -604,6 +604,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named-checkconf.html b/doc/arm/man.named-checkconf.html index f2c19f9932..85945d323c 100644 --- a/doc/arm/man.named-checkconf.html +++ b/doc/arm/man.named-checkconf.html @@ -208,6 +208,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named-checkzone.html b/doc/arm/man.named-checkzone.html index 0bd0b48724..24c6a8261f 100644 --- a/doc/arm/man.named-checkzone.html +++ b/doc/arm/man.named-checkzone.html @@ -463,6 +463,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named-journalprint.html b/doc/arm/man.named-journalprint.html index 43bd8c9450..a90ae61aab 100644 --- a/doc/arm/man.named-journalprint.html +++ b/doc/arm/man.named-journalprint.html @@ -117,6 +117,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named-nzd2nzf.html b/doc/arm/man.named-nzd2nzf.html index 3dec266654..d9a26c7091 100644 --- a/doc/arm/man.named-nzd2nzf.html +++ b/doc/arm/man.named-nzd2nzf.html @@ -119,6 +119,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named-rrchecker.html b/doc/arm/man.named-rrchecker.html index 02f71890d5..a5f0b250a9 100644 --- a/doc/arm/man.named-rrchecker.html +++ b/doc/arm/man.named-rrchecker.html @@ -121,6 +121,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named.conf.html b/doc/arm/man.named.conf.html index 8bc30c694e..f669746b08 100644 --- a/doc/arm/man.named.conf.html +++ b/doc/arm/man.named.conf.html @@ -1075,6 +1075,6 @@ zone -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.named.html b/doc/arm/man.named.html index 225947c95f..7d3e36d85f 100644 --- a/doc/arm/man.named.html +++ b/doc/arm/man.named.html @@ -492,6 +492,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.nsec3hash.html b/doc/arm/man.nsec3hash.html index c7b38bdf4f..6448e23f4c 100644 --- a/doc/arm/man.nsec3hash.html +++ b/doc/arm/man.nsec3hash.html @@ -155,6 +155,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.nslookup.html b/doc/arm/man.nslookup.html index 0c130b23e2..a285ee9605 100644 --- a/doc/arm/man.nslookup.html +++ b/doc/arm/man.nslookup.html @@ -437,6 +437,6 @@ nslookup -query=hinfo -timeout=10 -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.nsupdate.html b/doc/arm/man.nsupdate.html index 3469a520ba..d05714edd3 100644 --- a/doc/arm/man.nsupdate.html +++ b/doc/arm/man.nsupdate.html @@ -818,6 +818,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.pkcs11-destroy.html b/doc/arm/man.pkcs11-destroy.html index ad74b128fa..5d713a94e8 100644 --- a/doc/arm/man.pkcs11-destroy.html +++ b/doc/arm/man.pkcs11-destroy.html @@ -162,6 +162,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.pkcs11-keygen.html b/doc/arm/man.pkcs11-keygen.html index 0ebf4749f5..1b877d41f4 100644 --- a/doc/arm/man.pkcs11-keygen.html +++ b/doc/arm/man.pkcs11-keygen.html @@ -200,6 +200,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.pkcs11-list.html b/doc/arm/man.pkcs11-list.html index 707f8ce902..8980184040 100644 --- a/doc/arm/man.pkcs11-list.html +++ b/doc/arm/man.pkcs11-list.html @@ -158,6 +158,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.pkcs11-tokens.html b/doc/arm/man.pkcs11-tokens.html index 06e94bb537..f91cad711b 100644 --- a/doc/arm/man.pkcs11-tokens.html +++ b/doc/arm/man.pkcs11-tokens.html @@ -123,6 +123,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.rndc-confgen.html b/doc/arm/man.rndc-confgen.html index 26409634c9..1b4e102e24 100644 --- a/doc/arm/man.rndc-confgen.html +++ b/doc/arm/man.rndc-confgen.html @@ -260,6 +260,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.rndc.conf.html b/doc/arm/man.rndc.conf.html index e6909ad75f..1535365be3 100644 --- a/doc/arm/man.rndc.conf.html +++ b/doc/arm/man.rndc.conf.html @@ -268,6 +268,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/man.rndc.html b/doc/arm/man.rndc.html index 980c78b47e..da003f31f2 100644 --- a/doc/arm/man.rndc.html +++ b/doc/arm/man.rndc.html @@ -1024,6 +1024,6 @@ -

BIND 9.14.7 (Stable Release)

+

BIND 9.14.8 (Stable Release)

diff --git a/doc/arm/notes-9.14.8.xml b/doc/arm/notes-9.14.8.xml index 5bec53a753..3d1af68507 100644 --- a/doc/arm/notes-9.14.8.xml +++ b/doc/arm/notes-9.14.8.xml @@ -11,6 +11,17 @@
Notes for BIND 9.14.8 +
Security Fixes + + + + Set a limit on the number of concurrently served pipelined TCP + queries. This flaw is disclosed in CVE-2019-6477. [GL #1264] + + + +
+
New Features diff --git a/doc/arm/notes.html b/doc/arm/notes.html index fd35c56f93..b7e227c9bf 100644 --- a/doc/arm/notes.html +++ b/doc/arm/notes.html @@ -15,7 +15,7 @@

-Release Notes for BIND Version 9.14.7

+Release Notes for BIND Version 9.14.8

@@ -94,6 +94,29 @@

+Security Fixes

+
  • +

    + Set a limit on the number of concurrently served pipelined TCP + queries. This flaw is disclosed in CVE-2019-6477. [GL #1264] +

    +
+
+ +
+

+New Features

+
  • +

    + Added a new statistics variable tcp-highwater + that reports the maximum number of simultaneous TCP clients BIND + has handled while running. [GL #1206] +

    +
+
+ +
+

Feature Changes

  • diff --git a/doc/arm/notes.pdf b/doc/arm/notes.pdf index 7eb65e87f2..d28cf0eee2 100644 Binary files a/doc/arm/notes.pdf and b/doc/arm/notes.pdf differ diff --git a/doc/arm/notes.txt b/doc/arm/notes.txt index 87ad364948..0bc32a81ae 100644 --- a/doc/arm/notes.txt +++ b/doc/arm/notes.txt @@ -1,4 +1,4 @@ -Release Notes for BIND Version 9.14.7 +Release Notes for BIND Version 9.14.8 Introduction @@ -51,6 +51,17 @@ operating systems. Notes for BIND 9.14.8 +Security Fixes + + * Set a limit on the number of concurrently served pipelined TCP + queries. This flaw is disclosed in CVE-2019-6477. [GL #1264] + +New Features + + * Added a new statistics variable tcp-highwater that reports the maximum + number of simultaneous TCP clients BIND has handled while running. [GL + #1206] + Feature Changes * NSEC Aggressive Cache (synth-from-dnssec) has been disabled by default diff --git a/lib/bind9/api b/lib/bind9/api index 2f1ed64c29..35fa933ec7 100644 --- a/lib/bind9/api +++ b/lib/bind9/api @@ -10,5 +10,5 @@ # 9.12: 1200-1299 # 9.13/9.14: 1300-1499 LIBINTERFACE = 1302 -LIBREVISION = 4 +LIBREVISION = 5 LIBAGE = 0 diff --git a/lib/dns/api b/lib/dns/api index 02bf955988..bad4a684bd 100644 --- a/lib/dns/api +++ b/lib/dns/api @@ -9,6 +9,6 @@ # 9.11: 160-169,1100-1199 # 9.12: 1200-1299 # 9.13/9.14: 1300-1499 -LIBINTERFACE = 1310 -LIBREVISION = 2 +LIBINTERFACE = 1311 +LIBREVISION = 0 LIBAGE = 0 diff --git a/lib/isc/api b/lib/isc/api index af5f914be0..d292edb32a 100644 --- a/lib/isc/api +++ b/lib/isc/api @@ -9,6 +9,6 @@ # 9.11: 160-169,1100-1199 # 9.12: 1200-1299 # 9.13/9.14: 1300-1499 -LIBINTERFACE = 1309 -LIBREVISION = 2 +LIBINTERFACE = 1310 +LIBREVISION = 0 LIBAGE = 0 diff --git a/lib/isccfg/api b/lib/isccfg/api index 0f300c7574..4b38f850c9 100644 --- a/lib/isccfg/api +++ b/lib/isccfg/api @@ -10,5 +10,5 @@ # 9.12: 1200-1299 # 9.13/9.14: 1300-1499 LIBINTERFACE = 1302 -LIBREVISION = 2 +LIBREVISION = 3 LIBAGE = 0 diff --git a/lib/ns/api b/lib/ns/api index 0b11d5edf8..a7a688bc0f 100644 --- a/lib/ns/api +++ b/lib/ns/api @@ -9,6 +9,6 @@ # 9.11: 160-169 # 9.12: 1200-1299 # 9.13/9.14: 1300-1499 -LIBINTERFACE = 1307 -LIBREVISION = 1 -LIBAGE = 0 +LIBINTERFACE = 1308 +LIBREVISION = 0 +LIBAGE = 1 diff --git a/lib/ns/client.c b/lib/ns/client.c index 22a0cb6628..84b78ac0fe 100644 --- a/lib/ns/client.c +++ b/lib/ns/client.c @@ -103,6 +103,13 @@ #define SEND_BUFFER_SIZE 4096 #define RECV_BUFFER_SIZE 4096 +#define TCP_CLIENTS_PER_CONN 23 +/*%< + * Number of simultaneous ns_clients_t (queries in flight) for one + * TCP connection. The number was arbitrarily picked and might be + * changed in the future. + */ + #define NMCTXS 100 /*%< * Number of 'mctx pools' for clients. (Should this be configurable?) @@ -357,7 +364,7 @@ tcpconn_init(ns_client_t *client, bool force) { */ tconn = isc_mem_allocate(client->sctx->mctx, sizeof(*tconn)); - isc_refcount_init(&tconn->refs, 1); + isc_refcount_init(&tconn->clients, 1); /* Current client */ tconn->tcpquota = quota; quota = NULL; tconn->pipelined = false; @@ -374,14 +381,14 @@ tcpconn_init(ns_client_t *client, bool force) { */ static void tcpconn_attach(ns_client_t *source, ns_client_t *target) { - int old_refs; + int old_clients; REQUIRE(source->tcpconn != NULL); REQUIRE(target->tcpconn == NULL); REQUIRE(source->tcpconn->pipelined); - old_refs = isc_refcount_increment(&source->tcpconn->refs); - INSIST(old_refs > 0); + old_clients = isc_refcount_increment(&source->tcpconn->clients); + INSIST(old_clients > 0); target->tcpconn = source->tcpconn; } @@ -394,17 +401,17 @@ tcpconn_attach(ns_client_t *source, ns_client_t *target) { static void tcpconn_detach(ns_client_t *client) { ns_tcpconn_t *tconn = NULL; - int old_refs; + int old_clients; REQUIRE(client->tcpconn != NULL); tconn = client->tcpconn; client->tcpconn = NULL; - old_refs = isc_refcount_decrement(&tconn->refs); - INSIST(old_refs > 0); + old_clients = isc_refcount_decrement(&tconn->clients); + INSIST(old_clients > 0); - if (old_refs == 1) { + if (old_clients == 1) { isc_quota_detach(&tconn->tcpquota); isc_mem_free(client->sctx->mctx, tconn); } @@ -2669,28 +2676,39 @@ ns__client_request(isc_task_t *task, isc_event_t *event) { /* * Pipeline TCP query processing. */ - if (TCP_CLIENT(client) && - client->message->opcode != dns_opcode_query) - { - client->tcpconn->pipelined = false; - } - if (TCP_CLIENT(client) && client->tcpconn->pipelined) { - /* - * We're pipelining. Replace the client; the - * replacement can read the TCP socket looking - * for new messages and this one can process the - * current message asynchronously. - * - * There will now be at least three clients using this - * TCP socket - one accepting new connections, - * one reading an existing connection to get new - * messages, and one answering the message already - * received. - */ - result = ns_client_replace(client); - if (result != ISC_R_SUCCESS) { + if (TCP_CLIENT(client)) { + if (client->message->opcode != dns_opcode_query) { client->tcpconn->pipelined = false; } + + /* + * Limit the maximum number of simultaneous pipelined + * queries on TCP connection to TCP_CLIENTS_PER_CONN. + */ + if ((isc_refcount_current(&client->tcpconn->clients) + > TCP_CLIENTS_PER_CONN)) + { + client->tcpconn->pipelined = false; + } + + if (client->tcpconn->pipelined) { + /* + * We're pipelining. Replace the client; the + * replacement can read the TCP socket looking + * for new messages and this one can process the + * current message asynchronously. + * + * There will now be at least three clients using this + * TCP socket - one accepting new connections, + * one reading an existing connection to get new + * messages, and one answering the message already + * received. + */ + result = ns_client_replace(client); + if (result != ISC_R_SUCCESS) { + client->tcpconn->pipelined = false; + } + } } dns_opcodestats_increment(client->sctx->opcodestats, diff --git a/lib/ns/include/ns/client.h b/lib/ns/include/ns/client.h index 110d25e953..56a48646f7 100644 --- a/lib/ns/include/ns/client.h +++ b/lib/ns/include/ns/client.h @@ -82,7 +82,10 @@ /*% reference-counted TCP connection object */ typedef struct ns_tcpconn { - isc_refcount_t refs; + isc_refcount_t clients; /* Number of clients using + * this connection. Conn can + * be freed if goes to 0 + */ isc_quota_t *tcpquota; bool pipelined; } ns_tcpconn_t; diff --git a/version b/version index 16173e6990..44b8bf3678 100644 --- a/version +++ b/version @@ -5,7 +5,7 @@ PRODUCT=BIND DESCRIPTION="(Stable Release)" MAJORVER=9 MINORVER=14 -PATCHVER=7 +PATCHVER=8 RELEASETYPE= RELEASEVER= EXTENSIONS=