Title: ISC DHCPDv3, remote root compromise
Application: ISC DHCPD version 3.0.1rc8 and older (http://www.isc.org)
Status: Vendor and CERT contacted, new fixed version released.
Author: Fermín J. Serna <email@example.com>
ISC DHCPD in its version 3 introduced new dns-update features. ISC DHCPD is vulnerable to a format string bug attack, while reporting the result of a dns-update request. Since ISC DHCPD runs with root privileges, attackers can use this bug to gain unauthorized access, to the system running ISC DHCPD, as root user.
CERT has issued an advisory located at:
ISC DHCPD (in its verion 3) is compiled by default with NSUPDATE. If ISC DHCPD is configured to make a dns-update when a dhcp request arrives, it will send a dns-update request to the configured DNS server. When the DNS server sends the response the ISC DHCPD parses the packet and logs the result of the dns-update request in the following way:
This code lacks of format string. Since "obuf" contains some user supplied data such as client hostname, an attacker can query the ISC DHCP server with a hostname field containing a malign format string (%n).
This vulnerability can be exploited on local lans, lans with DHCP relay servers or acting as a fake DHCP relay server.
NGSEC has developed an exploit for this vulnerability but we are not going to release it for obvious reasons (remote root compromise to a widely spread application).
You can upgrade to a newer version or apply the following patch:
- --- common/print.c Tue Apr 9 13:41:17 2002
+++ common/print.c.patched Tue Apr 9 13:41:56 2002
@@ -1366,8 +1366,8 @@
*s++ = '.';
*s++ = 0;
- - log_error (obuf);
+ log_error ("%s",obuf);
- - log_info (obuf);
+ log_info ("%s",obuf);
#endif /* NSUPDATE */
Upgrade to a newer ISC DHCPD version.
Run ISC DHCPD on a secure environment.
More security advisories at: http://www.ngsec.com/ngresearch/ngadvisories/
PGP Key: http://www.ngsec.com/pgp/labs.asc
(c)Copyright 2002 NGSEC. All rights reserved.