CVE-2021-25217: A buffer overrun in lease file parsing code can be used to exploit a common vulnerability shared by dhcpd and dhclient
Document version: 2.0
Posting date: 26 May 2021
Program impacted: ISC DHCP. Due to shared code, multiple components are affected; please continue reading for details.
Versions affected: ISC DHCP 4.1-ESV-R1 -> 4.1-ESV-R16, ISC DHCP 4.4.0 -> 4.4.2.
Other branches of ISC DHCP (i.e., releases in the 4.0.x series or lower and releases in the 4.3.x series) are beyond their End-of-Life (EOL) and no longer supported by ISC. From inspection it is clear that the defect is also present in releases from those series, but they have not been officially tested for the vulnerability.
Program code used by the ISC DHCP package to read and parse stored leases has a defect that can be exploited by an attacker to cause one of several undesirable outcomes, depending on the component attacked and the way in which it was compiled.
Because of a discrepancy between the code which handles encapsulated option information in leases transmitted "on the wire" and the code which reads and parses lease information after it has been written to disk storage, it is potentially possible for an attacker to deliberately cause a situation where:
dhcpd, while running in DHCPv4 or DHCPv6 mode, or
dhclient, the ISC DHCP client implementation
will attempt to read a stored lease that contains option information which will trigger a bug in the option parsing code.
The outcome of encountering the defect while reading a lease that will trigger it varies, according to:
- the component being affected (i.e.,
- whether the package was built as a 32-bit or 64-bit binary
- whether the compiler flag
-fstack-protection-strongwas used when compiling
dhclient, ISC has not successfully reproduced the error on a 64-bit system. However, on a 32-bit system it is possible to cause
dhclient to crash when reading an improper lease, which could cause network connectivity problems for an affected system due to the absence of a running DHCP client process.
dhcpd, when run in DHCPv4 or DHCPv6 mode:
- if the
dhcpdserver binary was built for a 32-bit architecture AND the
-fstack-protection-strongflag was specified to the compiler,
dhcpdmay exit while parsing a lease file containing an objectionable lease, resulting in lack of service to clients. Additionally, the offending lease and the lease immediately following it in the lease database may be improperly deleted.
- if the
dhcpdserver binary was built for a 64-bit architecture OR if the
-fstack-protection-strongcompiler flag was NOT specified, the crash will not occur, but it is possible for the offending lease and the lease which immediately followed it to be improperly deleted.
dhclient, the ISC DHCP client: 7.4
dhcpd, the ISC DHCP server: 6.5
For more information on the Common Vulnerability Scoring System and to obtain your specific environmental score, please visit: https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:A/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H/E:P/RL:O/RC:C&version=3.1.
We are not aware of any active exploits.
Upgrade to the patched release most closely related to your current version of ISC DHCP:
- ISC DHCP 4.1-ESV-R16-P1
- ISC DHCP 4.4.2-P1
ISC would like to thank Jon Franklin from Dell and Pawel Wieczorkiewicz from Amazon Web Services for (independently) reporting this vulnerability.
Document revision history:
1.0 Early Notification, 05 May 2021
1.1 Advance Security Notification, 19 May 2021
2.0 Public Disclosure, 26 May 2021
Do you still have questions? Questions regarding this advisory should go to firstname.lastname@example.org. To report a new issue, please encrypt your message using email@example.com'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/.
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 in the ISC Software Defect and Security Vulnerability Disclosure Policy at https://kb.isc.org/docs/aa-00861.
The Knowledgebase article https://kb.isc.org/docs/cve-2021-25217 is the complete and official security advisory document.
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.