Vulnerability Note VU#654390
ISC DHCP contains C Includes that define vsnprintf() to vsprintf() creating potential buffer overflow conditions
The Internet Systems Consortium's (ISC) Dynamic Host Configuration Protocol (DHCP) 3 application contains a vulnerability that introduces several potential buffer overflow conditions. Exploitation of this vulnerability can cause a denial-of-service condition to the DHCP Daemon (DHCPD) and may permit a remote attacker to execute arbitrary code on the system with the privileges of the DHCPD process.
ISC DHCP makes use of the vsnprintf() for writing various log file strings. For systems that do not support vsnprintf(), a C include file was created that defines the vsnprintf() function to vsprintf() as such:
#define vsnprintf(buf, size, fmt, list) vsprintf (buf, fmt, list)
vsprintf() is a function that does not check bounds, therefore the size is discarded creating the potential for a buffer overflow when client provided data is supplied. Note that the vsnprintf() statements are defined after the vulnerable code that is discussed in VU#317350. This means that VU#317350 would be triggered prior to these potential buffer overflows, unless a client could specify content to a vsnprintf() statement not associated with logging. It is believed that there aren't any other vsnprintf() statements vulnerable to this type of exploitation. Note that this vulnerability was discovered and exploitable after VU#317350 was resolved.
Only ISC DHCP 3.0.1rc12 and ISC DHCP 3.0.1rc13 are believed to be vulnerable for the following operating systems:
As with VU#317350, all versions of ISC DCHP 3, including all snapshots, betas, and release candidates, contain the flawed code. However, it is not believed that these versions are exploitable because they discard all but the last hostname option provided by the client.
A remote attacker with the ability to send a crafted packet to the DHCPD listening port (typically port 67/UDP), may be able to crash the ISC DHCP daemon, causing a denial of service. It may be possible to execute arbitrary code on the vulnerable server with the privileges of the DHCPD process (typically root).
ISC has released DHCP 3.0.1rc14 which resolves this issue. For systems that do not support vsnprintf(), DHCP now implements it's own bounded function. DHCP will not compile and link if it does not believe that it is linking to a bounds checking function. Versions prior to ISC DHCP 3 are no longer supported. All users of ISC DHCP are encouraged to update to the latest version.
Systems Affected (Learn More)
|Vendor||Status||Date Notified||Date Updated|
|Fedora Project||Affected||12 Jun 2004||22 Jun 2004|
|InfoBlox||Affected||12 Jun 2004||13 Jul 2004|
|MandrakeSoft||Affected||12 Jun 2004||23 Jun 2004|
|SuSE Inc.||Affected||12 Jun 2004||23 Jun 2004|
|Apple Computer Inc.||Not Affected||12 Jun 2004||22 Jun 2004|
|Aruba Networks||Not Affected||12 Jun 2004||23 Jun 2004|
|Check Point||Not Affected||12 Jun 2004||22 Jun 2004|
|Cisco Systems Inc.||Not Affected||12 Jun 2004||24 Jun 2004|
|Extreme Networks||Not Affected||12 Jun 2004||22 Jun 2004|
|Hitachi||Not Affected||12 Jun 2004||22 Jun 2004|
|IBM||Not Affected||12 Jun 2004||23 Jun 2004|
|Juniper Networks||Not Affected||-||22 Jun 2004|
|Microsoft Corporation||Not Affected||12 Jun 2004||23 Jun 2004|
|NetBSD||Not Affected||12 Jun 2004||22 Jun 2004|
|Nominum||Not Affected||12 Jun 2004||24 Jun 2004|
CVSS Metrics (Learn More)
Thanks to Gregory Duchemin and Solar Designer for discovering, reporting and resolving this vulnerability. Thanks also to David Hankins of ISC for notifying us of this vulnerability and the technical information provided to create this document.
This document was created by Jason A Rafail and based on the technical information provided by David Hankins of ISC.
- CVE IDs: CAN-2004-0461
- Date Public: 22 Jun 2004
- Date First Published: 22 Jun 2004
- Date Last Updated: 21 Jul 2004
- Severity Metric: 14.21
- Document Revision: 17
If you have feedback, comments, or additional information about this vulnerability, please send us email.