XSS vulnerabilities in pmpopup.php
Here is my temporary patch for pmpopup.php. I am sure Meo will have a better way of doing this but this is working for me and it does eliminate the XSS vulnerability while preserving the PM Popup functions. This is not an official patch.
For M1.1Rc1:
Step 1.
FIND in mkportal/include/pmpopup.php
$m1 = str_replace("%20", " ", $_GET['m1']);
$m2 = str_replace("%20", " ", $_GET['m2']);
$m3 = str_replace("%20", " ", $_GET['m3']);
$m4 = str_replace("%20", " ", $_GET['m4']);
$u1 = $_GET['u1'];
REPLACE WITH:
/*
$m1 = str_replace("%20", " ", $_GET['m1']);
$m2 = str_replace("%20", " ", $_GET['m2']);
$m3 = str_replace("%20", " ", $_GET['m3']);
$m4 = str_replace("%20", " ", $_GET['m4']);
$u1 = $_GET['u1'];
*/
/* Begin temp patch by visiblesoul */
define ( 'IN_MKP', 1 );
define ( 'IN_PMPOP', 1 );
$MK_PATH = "../../";
require $MK_PATH."mkportal/conf_mk.php";
global $DB, $mklib, $mkportals;
switch($MK_BOARD) {
case 'IPB':
$driverf = "IPB/ipb_driverf.php";
$board_functions = "IPB/ipb_board_functions.php";
break;
case 'PHPBB':
$driverf = "PHPBB/php_driverf.php";
$board_functions = "PHPBB/php_board_functions.php";
break;
case 'VB':
$driverf = "VB/vb_driverf.php";
$board_functions = "VB/vb_board_functions.php";
break;
case 'IPB13':
$driverf = "IPB13/ipb13_driverf.php";
$board_functions = "IPB13/ipb13_board_functions.php";
break;
default:
$driverf = "SMF/smf_driverf.php";
$board_functions = "SMF/smf_board_functions.php";
break;
}
require $MK_PATH."mkportal/include/$driverf";
require $MK_PATH."mkportal/include/functions.php";
require $MK_PATH."mkportal/include/$board_functions";
switch($MK_BOARD) {
case 'IPB':
$u1 = "$mklib->siteurl/$mklib->forumpath/index.php?act=Msg";
break;
case 'PHPBB':
$u1 = "$mklib->siteurl/$mklib->forumpath/privmsg.php?folder=inbox";
break;
case 'VB':
$u1 = "$mklib->siteurl/$mklib->forumpath/private.php";
break;
case 'IPB13':
$u1 = "$mklib->siteurl/$mklib->forumpath/index.php?act=Msg";
break;
default:
$u1 = "$mklib->siteurl/$mklib->forumpath/index.php?action=pm";
break;
}
$m1 = $mklib->lang['popm1'];
$m2 = $mklib->lang['popm2'];
$m3 = $mklib->lang['popm3'];
$m4 = $mklib->lang['popm4'];
/* End temp patch by visiblesoul */
Step 2. (vBulletin only)
FIND in mkportal/include/VB/vbdriverf.php
require $MK_PATH."mkportal/conf_mk.php";
ADD ABOVE:
if (defined('IN_PMPOP')) {
chdir('mkportal/include');
}