Internet Security Systems Security Alert February 27, 2002
Multiple PHP Vulnerabilities: Remote Compromise Exploit in Circulation
ISS X-Force has learned of multiple buffer overflow vulnerabilities present in the PHP (Hypertext Preprocessor) scripting language. PHP is a popular server-side scripting language that is used heavily throughout the Internet. PHP is most commonly used in Apache Web server environments, but it is supported by all major Web servers and operating systems. X-Force has verified that a functional exploit for one of the vulnerabilities exists and may be actively circulating in the computer underground.
Netcraft reports that as of January 2002, there are over 20.8 million active Apache installations, which account for 57% of the sites surveyed. Secure Space reports that PHP is the most popular Apache module available and there are over 1.44 million active installations.
PHP version 3.10-3.18 PHP version 4.0.1-4.03pl1 PHP version 4.0.2-4.05 PHP version 4.0.6-4.0.7RC2 PHP version 4.0.7RC3-4.1.1
The PHP 4.2.0-dev distribution is not vulnerable.
PHP supports file uploads via HTTP POST by any RFC-1867 compliant Web browser. This feature allows Web site visitors to upload files, scripting, or any type of content to the server, where it can then be stored, displayed, or operated upon, depending on the design of the server. This feature is considered a potential security risk and many security mechanisms have been added to PHP over time to limit its abuse.
Multiple buffer overflow vulnerabilities exist within the HTTP POST file upload functionality. To successfully exploit these vulnerabilities, attackers must upload a PHP form containing specially crafted MIME encoded data. In the exploit X-Force has analyzed, this data is passed in a buffer to a routine that locates the MIME boundary. A pointer is set to point to the end of the boundary, and then the "Content- disposition" header is parsed. A logic flaw in the parsing routine may cause PHP to miscalculate the remaining byte count within the allocated buffer. Under certain circumstances, this may lead to a one-byte overflow within the heap memory management data.
Heap overflows are inherently difficult to exploit because the nature of the memory heap is much more dynamic then that of the stack. The environment of the heap management system must be favorable to the attacker to successfully exploit this vulnerability. Web servers are constantly allocating more memory dynamically and are serving many clients at any given time. This environment is quite chaotic and decreases the chances of successful exploitation in real-world conditions.
X-Force has analyzed and tested a functional exploit. This exploit is believed to be circulating in the underground community and in use to a limited degree. It contains nine separate exploit vectors for versions of Debian and Red Hat Linux running various versions of Apache Web server and PHP. X-Force predicts newer versions of this exploit may support exploit vectors covering additional operating systems.
The exploit that X-Force has analyzed appears to be an early version, and is somewhat unreliable. X-Force has been able to compromise remote servers with this current exploit in a lab environment. Newer and more effective versions may be circulating as well.
The maintainers of PHP have updated the PHP CVS source code repository to fix this vulnerability. X-Force recommends that Web site administrators upgrade to the latest versions available for their PHP distributions. PHP downloads are available at: http://www.php.net/downloads.php
The vulnerability associated with the exploit has been fixed in the file "php4/main/rfc1867.c". PHP4 administrators should verify that the revision of this file is 220.127.116.11 or higher. The latest PHP version 4.1.2 packages contain the patched version of "rfc1867.c".
As a workaround, the file upload support can be disabled on Web servers running PHP 4.0.3 or above. Open the php.ini file and modify the line file_uploads = On to file_uploads = Off. After modifying the php.ini file, the Web server must be restarted if PHP is running as module.
An X-Press Update for RealSecure Network Sensor will be available soon to provide detection support for these vulnerabilities. An Internet Scanner Flex Check will be released today to find vulnerable versions of PHP. These updates will be available at the ISS Download Center at: http://www.iss.net/download
Advisory: PHP remote vulnerabilities, http://security.e-matters.de/advisories/012002.html
PHP Downloads, http://www.php.net/downloads.php
Apache Module Report, http://www.securityspace.com/s_survey/data/man.200201/apachemods.html
ISS X-Force Database, http://www.iss.net/security_center/static/8281.php
ISS Download Center, http://www.iss.net/download
This alert is available at: http://www.iss.net/security_center/alerts/advise112.php [Note: It may take up to 24 hours from the original posting of this alert for it to appear on the Web site.]
ISS would like to thank Snort for providing the exploit for this vulnerability.
About Internet Security Systems (ISS) Founded in 1994, Internet Security Systems (ISS) (Nasdaq: ISSX) is a pioneer and world leader in software and services that protect critical online resources from an ever-changing spectrum of threats and misuse. Internet Security Systems is headquartered in Atlanta, GA, with additional operations throughout the Americas, Asia, Australia, Europe and the Middle East.
Copyright (c) 2002 Internet Security Systems, Inc. All rights reserved worldwide.
Permission is hereby granted for the electronic redistribution of this document. It is not to be edited or altered in any way without the express written consent of the Internet Security Systems X-Force. If you wish to reprint the whole or any part of this document in any other medium excluding electronic media, please email email@example.com for permission.
Disclaimer: The information within this paper may change without notice. Use of this information constitutes acceptance for use in an AS IS condition. There are NO warranties, implied or otherwise, with regard to this information or its use. Any use of this information is at the user's risk. In no event shall the author/distributor (Internet Security Systems X-Force) be held liable for any damages whatsoever arising out of or in connection with the use or spread of this information.
X-Force PGP Key available on MIT's PGP key server and PGP.com's key server, as well as at http://www.iss.net/security_center/sensitive.php
Please send suggestions, updates, and comments to: X-Force firstname.lastname@example.org of Internet Security Systems, Inc.