search menu icon-carat-right cmu-wordmark

CERT Coordination Center

ISC DHCP contains C Includes that define vsnprintf() to vsprintf() creating potential buffer overflow conditions

Vulnerability Note VU#654390

Original Release Date: 2004-06-22 | Last Revised: 2004-07-21

Overview

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.

Description

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:

    • AIX
    • AlphaOS
    • Cygwin32
    • HP-UX
    • Irix
    • Linux
    • NextStep
    • SCO
    • SunOS 4
    • SunOS 5.5
    • Ultrix

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.

Impact

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).

Solution

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.

Vendor Information

654390
 

View all 65 vendors View less vendors


CVSS Metrics

Group Score Vector
Base
Temporal
Environmental

References

Acknowledgements

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.

Other Information

CVE IDs: CVE-2004-0461
Severity Metric: 14.21
Date Public: 2004-06-22
Date First Published: 2004-06-22
Date Last Updated: 2004-07-21 14:34 UTC
Document Revision: 17

Sponsored by CISA.