PHP: Multiple vulnerabilities
Gentoo Linux Security Advisory
||GLSA 200710-02 / php
||October 07, 2007
||October 07, 2007: 01
All supported architectures
#179158, #180556, #191034
PHP contains several vulnerabilities including buffer and integer overflows
which could lead to the remote execution of arbitrary code.
PHP is a widely-used general-purpose scripting language that is
especially suited for Web development and can be embedded into HTML.
Several vulnerabilities were found in PHP. Mattias Bengtsson and Philip
Olausson reported integer overflows in the gdImageCreate() and
gdImageCreateTrueColor() functions of the GD library which can cause
heap-based buffer overflows (CVE-2007-3996). Gerhard Wagner discovered
an integer overflow in the chunk_split() function that can lead to a
heap-based buffer overflow (CVE-2007-2872). Its incomplete fix caused
incorrect buffer size calculation due to precision loss, also resulting
in a possible heap-based buffer overflow (CVE-2007-4661 and
CVE-2007-4660). A buffer overflow in the sqlite_decode_binary() of the
SQLite extension found by Stefan Esser that was addressed in PHP 5.2.1
was not fixed correctly (CVE-2007-1887).
Stefan Esser discovered an error in the zend_alter_ini_entry() function
handling a memory_limit violation (CVE-2007-4659). Stefan Esser also
discovered a flaw when handling interruptions with userspace error
handlers that can be exploited to read arbitrary heap memory
(CVE-2007-1883). Disclosure of sensitive memory can also be triggered
due to insufficient boundary checks in the strspn() and strcspn()
functions, an issue discovered by Mattias Bengtsson and Philip Olausson
Stefan Esser reported incorrect validation in the FILTER_VALIDATE_EMAIL
filter of the Filter extension allowing arbitrary email header
injection (CVE-2007-1900). NOTE: This CVE was referenced, but not fixed
in GLSA 200705-19.
Stanislav Malyshev found an error with unknown impact in the
money_format() function when processing "%i" and "%n" tokens
(CVE-2007-4658). zatanzlatan reported a buffer overflow in the
php_openssl_make_REQ() function with unknown impact when providing a
manipulated SSL configuration file (CVE-2007-4662). Possible memory
corruption when trying to read EXIF data in exif_read_data() and
exif_thumbnail() occurred with unknown impact.
Several vulnerabilities that allow bypassing of open_basedir and other
restrictions were reported, including the glob() function
(CVE-2007-4663), the session_save_path(), ini_set(), and error_log()
functions which can allow local command execution (CVE-2007-3378),
involving the readfile() function (CVE-2007-3007), via the Session
extension (CVE-2007-4652), via the MySQL extension (CVE-2007-3997) and
in the dl() function which allows loading extensions outside of the
specified directory (CVE-2007-4825).
Multiple Denial of Service vulnerabilities were discovered, including a
long "library" parameter in the dl() function (CVE-2007-4887), in
several iconv and xmlrpc functions (CVE-2007-4840 and CVE-2007-4783),
in the setlocale() function (CVE-2007-4784), in the glob() and
fnmatch() function (CVE-2007-4782 and CVE-2007-3806), a floating point
exception in the wordwrap() function (CVE-2007-3998), a stack
exhaustion via deeply nested arrays (CVE-2007-4670), an infinite loop
caused by a specially crafted PNG image in the png_read_info() function
of libpng (CVE-2007-2756) and several issues related to array
Remote attackers might be able to exploit these issues in PHP
applications making use of the affected functions, potentially
resulting in the execution of arbitrary code, Denial of Service,
execution of scripted contents in the context of the affected site,
security bypass or information leak.
There is no known workaround at this time.
All PHP users should upgrade to the latest version:
Code Listing 3.1: Resolution
# emerge --sync
# emerge --ask --oneshot --verbose ">=dev-lang/php-5.2.4_p20070914-r2"