PHP: Memory disclosure and arbitrary location file upload — GLSA 200410-04

Two bugs in PHP may allow the disclosure of portions of memory and allow remote attackers to upload files to arbitrary locations.

Affected packages

dev-php/php on all architectures
Affected versions < 4.3.9
Unaffected versions >= 4.3.9
dev-php/mod_php on all architectures
Affected versions < 4.3.9
Unaffected versions >= 4.3.9
dev-php/php-cgi on all architectures
Affected versions < 4.3.9
Unaffected versions >= 4.3.9

Background

PHP is a general-purpose scripting language widely used to develop web-based applications. It can run inside a web server using the mod_php module or the CGI version of PHP, or can run stand-alone in a CLI.

Description

Stefano Di Paola discovered two bugs in PHP. The first is a parse error in php_variables.c that could allow a remote attacker to view the contents of the target machine's memory. Additionally, an array processing error in the SAPI_POST_HANDLER_FUNC() function inside rfc1867.c could lead to the $_FILES array being overwritten.

Impact

A remote attacker could exploit the first vulnerability to view memory contents. On a server with a script that provides file uploads, an attacker could exploit the second vulnerability to upload files to an arbitrary location. On systems where the HTTP server is allowed to write in a HTTP-accessible location, this could lead to remote execution of arbitrary commands with the rights of the HTTP server.

Workaround

There is no known workaround at this time.

Resolution

All PHP, mod_php and php-cgi users should upgrade to the latest stable version:

 # emerge sync

 # emerge -pv ">=dev-php/php-4.3.9"
 # emerge ">=dev-php/php-4.3.9"

 # emerge -pv ">=dev-php/mod_php-4.3.9"
 # emerge ">=dev-php/mod_php-4.3.9"

 # emerge -pv ">=dev-php/php-cgi-4.3.9"
 # emerge ">=dev-php/php-cgi-4.3.9"

References

Release date
October 06, 2004

Latest revision
October 06, 2004: 01

Severity
normal

Exploitable
remote

Bugzilla entries