PHP: Multiple security vulnerabilities — GLSA 200407-13

Multiple security vulnerabilities, potentially allowing remote code execution, were found and fixed in PHP.

Affected packages

dev-php/php on all architectures
Affected versions <= 4.3.7-r1
Unaffected versions >= 4.3.8
dev-php/mod_php on all architectures
Affected versions <= 4.3.7-r1
Unaffected versions >= 4.3.8
dev-php/php-cgi on all architectures
Affected versions <= 4.3.7-r1
Unaffected versions >= 4.3.8

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

Several security vulnerabilities were found and fixed in version 4.3.8 of PHP. The strip_tags() function, used to sanitize user input, could in certain cases allow tags containing \0 characters (CAN-2004-0595). When memory_limit is used, PHP might unsafely interrupt other functions (CAN-2004-0594). The ftok and itpc functions were missing safe_mode checks. It was possible to bypass open_basedir restrictions using MySQL's LOAD DATA LOCAL function. Furthermore, the IMAP extension was incorrectly allocating memory and alloca() calls were replaced with emalloc() for better stack protection.

Impact

Successfully exploited, the memory_limit problem could allow remote excution of arbitrary code. By exploiting the strip_tags vulnerability, it is possible to pass HTML code that would be considered as valid tags by the Microsoft Internet Explorer and Safari browsers. Using ftok, itpc or MySQL's LOAD DATA LOCAL, it is possible to bypass PHP configuration restrictions.

Workaround

There is no known workaround that would solve all these problems. All users are encouraged to upgrade to the latest available versions.

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.8"
 # emerge ">=dev-php/php-4.3.8"

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

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

References

Release date
July 15, 2004

Latest revision
July 15, 2004: 01

Severity
high

Exploitable
remote

Bugzilla entries