Na BugTraqu znaleźć można proof of concept dla niezałatanych luk do MyBB 1.4 (w tym najnowszej wersji 1.4.2). Pierwszy błąd polega na braku walidacji parametru url przy przekierowywaniu po wykonanej czynności moderatorskiej. W efekcie jest luka Cross-site scripting, której wykorzystanie skierowane może być do użytkowników z uprawnieniami moderatora lub wyżej. Oprócz tego jeszcze dwie (mniej istotne) słabości skryptu. W samą historię luki (patrz link), biorąc pod uwagę niefrasobliwość deweloperów MyBB w podejściu do błędów, jestem w stanie uwierzyć… Prosta łata, póki producent nie wypuści poprawnego patcha:
File: functions.php, function redirect()
FIND:
function redirect($url, $message="", $title="")
{
global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;
$redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
$plugins->run_hooks_by_ref("redirect", $redirect_args);
if($mybb->input['ajax'])
REPLACE WITH:
function redirect($url, $message="", $title="")
{
global $header, $footer, $mybb, $theme, $headerinclude, $templates, $lang, $plugins;
$redirect_args = array('url' => &$url, 'message' => &$message, 'title' => &$title);
$plugins->run_hooks_by_ref("redirect", $redirect_args);
$url = addslashes($url) ;
if($mybb->input['ajax'])
Update: MyBB 1.4.3 łata dziurę, aczkolwiek (podobnie do mojej zmiany powyżej) tylko na zasadzie czarnej listy…