Operational Notification: An error in handling TCP client quota limits can exhaust TCP connections in BIND 9.16.0

Michael McNally mcnally at isc.org
Fri Mar 6 01:24:49 UTC 2020


Posting date:       05 March 2020
Program Impacted:   BIND
Versions affected:  9.16.0. Also versions 9.15.6 -> 9.15.8 of the
                    9.15 development branch.

Description:

   One part of the development work done in the BIND 9.15 branch
   was to modernize BIND's networking framework to use libuv, a
   multi-platform C library that provides support for asynchronous
   I/O based on event loops.

   Unfortunately, during this work we introduced a problem in
   enforcing TCP client quota limits. A discrepancy in our quota
   code can result in a situation where the count is not properly
   decremented in some cases.

Impact:

   Under some circumstances, especially if a server is accepting
   TCP connections from clients on multiple interfaces, once the
   quota has been reached the server may stop accepting new TCP
   connections even after the number of active TCP connections has
   fallen back below the quota limit.

   Servers which encounter this defect will continue accepting and
   processing UDP queries (which represent the majority of query
   traffic on most servers) but can lose the ability to accept new
   TCP connections until the server is restarted.

Workarounds:

   To avoid reaching this condition accidentally the operator of
   an affected server can provision the tcp-clients limit high
   enough so that it is not expected to be encountered in normal
   operation. However a malicious party could still succeed in
   triggering it deliberately.

Solution:

   Since the workaround listed above is not effective against
   deliberate exploitation ISC recommends that operators running
   an affected release of BIND either:

   -  Download a patch diff (from https://downloads.isc.org/isc/bind9/9.16.0/patches);,
      apply it to the 9.16.0 source code using the patch utility,
      and recompile to include the behavior fix which will be included
      in the next release of the 9.16 branch to prevent this defect,

   -or-

   -  Revert to a stable production release of BIND from a branch
      before the libuv networking restructuring introduced in 9.15/9.16.
      At the present time our supported release branches are 9.11
      (most recent release: 9.11.16) and 9.14 (most recent release: 9.14.11).

Acknowledgements:

   ISC would like to thank Jay Ford of the University of Iowa for
   reporting this issue.

Do you still have questions? Questions regarding this advisory
should go to security-officer at isc.org. To report a new issue, please
encrypt your message using security-officer at isc.org's PGP key which
can be found here: https://www.isc.org/pgpkey/. If you are unable
to use encrypted email, you may also report new issues at:
https://www.isc.org/reportbug/.

Note:

   ISC patches only currently supported versions. When possible we
   indicate EOL versions affected. (For current information on which
   versions are actively supported, please see
   https://www.isc.org/download/);.

ISC Security Vulnerability Disclosure Policy:

   Details of our current security advisory policy and practice can
   be found here: ISC Software Defect and Security Vulnerability
   Disclosure Policy.

This Knowledgebase article:

https://kb.isc.org/docs/operational-notification-an-error-in-handling-tcp-client-quota-limits-can-exhaust-tcp-connections-in-bind-9160

is the complete and official operational notification document.

Legal Disclaimer:

   Internet Systems Consortium (ISC) is providing this notice on
   an "AS IS" basis. No warranty or guarantee of any kind is expressed
   in this notice and none should be implied. ISC expressly excludes
   and disclaims any warranties regarding this notice or materials
   referred to in this notice, including, without limitation, any
   implied warranty of merchantability, fitness for a particular
   purpose, absence of hidden defects, or of non-infringement. Your
   use or reliance on this notice or materials referred to in this
   notice is at your own risk. ISC may change this notice at any
   time. A stand-alone copy or paraphrase of the text of this
   document that omits the document URL is an uncontrolled copy.
   Uncontrolled copies may lack important information, be out of
   date, or contain factual errors.


More information about the bind-announce mailing list