W silniku do tworzenia forów internetowych MyBB wykryto kilka podatności, które w połączeniu pozwalają na wykonanie kodu PHP na serwerze. Problemy występują w wersjach od 1.8.16 do 1.8.25 i zostały usunięte w aktualizacji MyBB 1.8.26.
Pierwsza podatność (CVE-2021-27889) pozwala nieuprzywilejowanemu uczestnikowi forum na osadzenie kodu JavaScript w publikacjach, dyskusjach i prywatnych wiadomościach. Forum umożliwia dodawanie obrazów, list i danych multimedialnych przez specjalne znaczniki, które są przekształcane w strukturę HTML. Z powodu błędu w kodzie transformacji takich znaczników konstrukcja z podwójnym URL [img]http://xyzsomething.com/image?)http://x.com/onerror=alert(1);//[/img] jest przekształcana w <img src="»http://xyzsomething.com/image?)<a" href="»" http:="»»" x.com="»»" onerror="»alert(1);//"»" target="»_blank»" rel="»noopener»" class="»mycode_url»">
Druga podatność (CVE-2021-27890) umożliwia wstrzykiwanie poleceń SQL i wykonanie własnego kodu. Problem wynika z wstawienia $theme[‘templateset’] do treści zapytania SQL bez odpowiedniego oczyszczania oraz wykonywania komponentów ${…} poprzez wywołanie eval. Na przykład, można uruchomić polecenie PHP passthru(‘ls’) podczas przetwarzania motywu o konstrukcji: ’) AND 1=0 UNION SELECT title, ‘${passthru(\’ls\’)}’ from mybb_templates —
Aby wykorzystać drugą podatność, konieczne jest posiadanie sesji z uprawnieniami administratora forum. Aby móc wysłać żądanie z uprawnieniami administratora, atakujący może skorzystać z pierwszej podatności i wysłać administratorowi prywatną wiadomość z kodem JavaScript, który podczas przeglądania wykorzysta drugą podatność.
Źródło: opennet.ru
