Report information
The Basics
Id:
49169
Status:
resolved
Priority:
Medium/Medium
Queue:

People
BugTracker
Version Fixed:
4.4.2-dev
Version Found:
(no value)
Versions Affected:
(no value)
Versions Planned:
4.4.2
Priority:
P2 Normal
Severity:
S2 Normal
CVSS Score:
(no value)
CVE ID:
(no value)
Component:
(no value)
Area:
(no value)

Dates
Created:Tue, 02 Apr 2019 16:34:03 -0400
Updated:Wed, 24 Apr 2019 06:48:20 -0400
Closed:Wed, 24 Apr 2019 06:48:19 -0400



This bug tracker is no longer active.

Please go to our Gitlab to submit issues (both feature requests and bug reports) for active projects maintained by Internet Systems Consortium (ISC).

Due to security and confidentiality requirements, full access is limited to the primary maintainers.

Date: Tue, 2 Apr 2019 20:34:00 +0000
From: "Greg Rabil" <greg.rabil@bt.com>
Subject: DHCP 4.4.1 - Dynamic DNS updates are done via TCP instead of UDP
To: dhcp-bugs@isc.org
Bug Report from www.isc.org: Name: Greg Rabil Email: greg.rabil@bt.com Software Version: DHCP 4.4.1 OS: Linux Subject:Dynamic DNS updates are done via TCP instead of UDP Bug Detail =========== In DHCP 4.3, all dynamic DNS updates are performed using UDP. In DHCP 4.4, that behavior has changed to use TCP. As far as I can tell, this change was not intentional, and instead is a bug caused by changes in the BIND library. In both DHCP 4.3 and 4.4, the common/dns.c source file contains a macro that maps ddns_update to dns_client_startupdate. When the ddns_modify_fwd function calls ddns_update (dns_client_startupdate), it passes DNS_CLIENTRESOPT_ALLOWRUN as the eight argument. The bind/include/dns/client.h file defines DNS_CLIENTRESOPT_ALLOWRUN as 0x02. The problem stems from the change in the implementation of the dns_client_startupdate function between the bind-9.9.11 package in DHCP 4.3 and the bind-9.11.2-p1 package in DHCP 4.4. Specifically, in bind-9.9.11, the implementation of dns_client_startupdate in lib/dns/client.c references the eight parameter (options) only in this line: UNUSED(options); However, in bind-9.11-2-p1, the implementation includes the line above, as well as this line: want_tcp = ISC_TF((options & DNS_CLIENTUPDOPT_TCP) != 0); Note that lib/dns/include/dns/client.h defines DNS_CLIENTUPDOPT_TCP as 0x02, which then sets the 'want_tcp' boolean to true. Since the caller (client.c in DHCP source code) is intending to set DNS_CLIENTRESOPT_ALLOWRUN flag via the options parameter, but not the DNS_CLIENTUPDOPT_TCP flag, this is the source of the problem, and a change in behavior with respect to the DDNS updates using UDP in DHCP 4.3 but TCP in DHCP 4.4. --- This email was received through isc.org Bug Submission Form
Subject: RE: [ISC-Bugs #49169] AutoReply: DHCP 4.4.1 - Dynamic DNS updates are done via TCP instead of UDP
From: greg.rabil@bt.com
To: dhcp-confidential@isc.org
Date: Tue, 9 Apr 2019 13:47:46 +0000
Hello, Do you have any comment about this bug report? Thanks, Greg Rabil -----Original Message----- From: DHCP Bugs via RT [mailto:dhcp-confidential@isc.org] Sent: Tuesday, April 2, 2019 4:34 PM To: Rabil,AG,A Gregory,JTK2 R <greg.rabil@bt.com> Subject: [ISC-Bugs #49169] AutoReply: DHCP 4.4.1 - Dynamic DNS updates are done via TCP instead of UDP Greetings, This message was automatically generated to acknowledge receipt of your recent email "DHCP 4.4.1 - Dynamic DNS updates are done via TCP instead of UDP", and to let you know that we have opened a ticket for your request (a summary of which appears below.) We do not need a further response from you at this time, but if you do respond, please include in the Subject of your reply the ID '[ISC-Bugs #49169]' so that we can match up your reply with the ticket in our system. What Happens Next ================= Bug reports submitted to us in this manner are handled based on perceived severity in relation to other bugs. We handle reports as time permits so there is no guaranteed response time for these reports. If you feel the issue you are reporting is a security issue, please see http://www.isc.org/security/reporting-issues for details on how to report it, including the PGP key you may use. If it is of a non-security yet still urgent matter, you may reply to this message to add further information. Public Visibility of Bugs ========================= Most bind and dhcp bug reports submitted since July 7, 2017 are visible to the public at https://bugs.isc.org <https://bugs.isc.org/> after review by the developers. If you want this report to be withheld from public view, please reply to this message with your request. All reports submitted to bind9-confidential@isc.org <mailto:bind9-confidential@isc.org> and dhcp-confidential@isc.org <mailto:dhcp-confidential@isc.org> are withheld from public view. Other Support Options ===================== If your organization requires more immediate attention, ISC offers paid support options. Please see http://www.isc.org/services/support for more information. If paid support is not an option, please consider making a donation to ISC. We don't require a donation -- we will work on your report just as quickly whether or not you can donate -- but we always need and welcome community support. See http://www.isc.org/donate/ Run a Supported Version ======================= If you are not running a supported version of our software, please upgrade. Bug reports against unsupported versions of BIND are discouraged, as your issue may have already been addressed. You can find the latest versions of our software here: https://www.isc.org/downloads/ For configuration help... ========================= Questions regarding configuration or setup are addressed on mailing lists - to subscribe, visit: https://lists.isc.org/mailman/listinfo/bind-users or https://lists.isc.org/mailman/listinfo/dhcp-users Thank you, dhcp-confidential@isc.org --------------------------------------------------------------------- Bug Report from www.isc.org: Name: Greg Rabil Email: greg.rabil@bt.com Software Version: DHCP 4.4.1 OS: Linux Subject:Dynamic DNS updates are done via TCP instead of UDP Bug Detail =========== In DHCP 4.3, all dynamic DNS updates are performed using UDP. In DHCP 4.4, that behavior has changed to use TCP. As far as I can tell, this change was not intentional, and instead is a bug caused by changes in the BIND library. In both DHCP 4.3 and 4.4, the common/dns.c source file contains a macro that maps ddns_update to dns_client_startupdate. When the ddns_modify_fwd function calls ddns_update (dns_client_startupdate), it passes DNS_CLIENTRESOPT_ALLOWRUN as the eight argument. The bind/include/dns/client.h file defines DNS_CLIENTRESOPT_ALLOWRUN as 0x02. The problem stems from the change in the implementation of the dns_client_startupdate function between the bind-9.9.11 package in DHCP 4.3 and the bind-9.11.2-p1 package in DHCP 4.4. Specifically, in bind-9.9.11, the implementation of dns_client_startupdate in lib/dns/client.c references the eight parameter (options) only in this line: UNUSED(options); However, in bind-9.11-2-p1, the implementation includes the line above, as well as this line: want_tcp = ISC_TF((options & DNS_CLIENTUPDOPT_TCP) != 0); Note that lib/dns/include/dns/client.h defines DNS_CLIENTUPDOPT_TCP as 0x02, which then sets the 'want_tcp' boolean to true. Since the caller (client.c in DHCP source code) is intending to set DNS_CLIENTRESOPT_ALLOWRUN flag via the options parameter, but not the DNS_CLIENTUPDOPT_TCP flag, this is the source of the problem, and a change in behavior with respect to the DDNS updates using UDP in DHCP 4.3 but TCP in DHCP 4.4. --- This email was received through isc.org Bug Submission Form
Hello Greg: I commented on this report earlier when I meant to use "reply" hence you did not see my comment: "This has actually already been fixed under: https://bugs.isc.org/Ticket/Display.html?id=47757 but it has not yet been released. It should be available in our public repo, now hosted on gitlab: gitlab.isc.org:isc-projects/dhcp.git Otherwise it will be available when we release 4.4.2, date TBD." Regards, Thomas Markwalder ISC Software Engineering On Tue Apr 09 13:48:00 2019, greg.rabil@bt.com wrote: > Hello, > Do you have any comment about this bug report? > > Thanks, > Greg Rabil > > -----Original Message----- > From: DHCP Bugs via RT [mailto:dhcp-confidential@isc.org] > Sent: Tuesday, April 2, 2019 4:34 PM > To: Rabil,AG,A Gregory,JTK2 R <greg.rabil@bt.com> > Subject: [ISC-Bugs #49169] AutoReply: DHCP 4.4.1 - Dynamic DNS updates > are done via TCP instead of UDP > > Greetings, > > This message was automatically generated to acknowledge receipt of > your recent email "DHCP 4.4.1 - Dynamic DNS updates are done via TCP > instead of UDP", and to let you know that we have opened a ticket for > your request (a summary of which appears below.) > > We do not need a further response from you at this time, but if you do > respond, please include in the Subject of your reply the ID > '[ISC-Bugs #49169]' > so that we can match up your reply with the ticket in our system. > > > What Happens Next > ================= > > Bug reports submitted to us in this manner are handled based on > perceived severity in relation to other bugs. We handle reports as > time permits so there is no guaranteed response time for these > reports. > > If you feel the issue you are reporting is a security issue, please > see http://www.isc.org/security/reporting-issues for details on how to > report it, including the PGP key you may use. > > If it is of a non-security yet still urgent matter, you may reply to > this message to add further information. > > > Public Visibility of Bugs > ========================= > > Most bind and dhcp bug reports submitted since July 7, 2017 are > visible to the public at https://bugs.isc.org <https://bugs.isc.org/> > after review by the developers. > > If you want this report to be withheld from public view, please reply > to this message with your request. > > All reports submitted to > bind9-confidential@isc.org <mailto:bind9-confidential@isc.org> and > dhcp-confidential@isc.org <mailto:dhcp-confidential@isc.org> > are withheld from public view. > > Other Support Options > ===================== > > If your organization requires more immediate attention, ISC offers > paid support options. Please see http://www.isc.org/services/support > for more information. > > If paid support is not an option, please consider making a donation to > ISC. We don't require a donation -- we will work on your report just > as quickly whether or not you can donate -- but we always need and > welcome community support. See http://www.isc.org/donate/ > > > Run a Supported Version > ======================= > > If you are not running a supported version of our software, please > upgrade. Bug reports against unsupported versions of BIND are > discouraged, as your issue may have already been addressed. > > You can find the latest versions of our software here: > > https://www.isc.org/downloads/ > > > For configuration help... > ========================= > > Questions regarding configuration or setup are addressed on mailing > lists - to subscribe, visit: > > https://lists.isc.org/mailman/listinfo/bind-users > or https://lists.isc.org/mailman/listinfo/dhcp-users > > > Thank you, > dhcp-confidential@isc.org > > --------------------------------------------------------------------- > > Bug Report from www.isc.org: > > Name: Greg Rabil > Email: greg.rabil@bt.com > Software Version: DHCP 4.4.1 > OS: Linux > Subject:Dynamic DNS updates are done via TCP instead of UDP > > > Bug Detail > =========== > In DHCP 4.3, all dynamic DNS updates are performed using UDP. In DHCP > 4.4, that behavior has changed to use TCP. As far as I can tell, this > change was not intentional, and instead is a bug caused by changes in > the BIND library. > > In both DHCP 4.3 and 4.4, the common/dns.c source file contains a > macro that maps ddns_update to dns_client_startupdate. When the > ddns_modify_fwd function calls ddns_update (dns_client_startupdate), > it passes DNS_CLIENTRESOPT_ALLOWRUN as the eight argument. The > bind/include/dns/client.h file defines DNS_CLIENTRESOPT_ALLOWRUN as > 0x02. > > The problem stems from the change in the implementation of the > dns_client_startupdate function between the bind-9.9.11 package in > DHCP 4.3 and the bind-9.11.2-p1 package in DHCP 4.4. Specifically, in > bind-9.9.11, the implementation of dns_client_startupdate in > lib/dns/client.c references the eight parameter (options) only in this > line: > > UNUSED(options); > > However, in bind-9.11-2-p1, the implementation includes the line > above, as well as this line: > > want_tcp = ISC_TF((options & DNS_CLIENTUPDOPT_TCP) != 0); > > Note that lib/dns/include/dns/client.h defines DNS_CLIENTUPDOPT_TCP as > 0x02, which then sets the 'want_tcp' boolean to true. > > Since the caller (client.c in DHCP source code) is intending to set > DNS_CLIENTRESOPT_ALLOWRUN flag via the options parameter, but not the > DNS_CLIENTUPDOPT_TCP flag, this is the source of the problem, and a > change in behavior with respect to the DDNS updates using UDP in DHCP > 4.3 but TCP in DHCP 4.4. > > --- > This email was received through isc.org Bug Submission Form > > >