В свободния движок за създаване на уеб форуми MyBB бяха открити няколко уязвимости, които в комбинация позволяват изпълнението на PHP код на сървъра. Проблемите се проявяват в версиите от 1.8.16 до 1.8.25 и са отстранени в актуализацията MyBB 1.8.26.
Първата уязвимост (CVE-2021-27889) позволява на непривилегирован потребител на форума да вгради JavaScript код в публикации, обсъждания и лични съобщения. Форумът позволява добавяне на изображения, списъци и мултимедийни данни чрез специални тагове, които се преобразуват в HTML структура. Поради грешка в кода за преобразуване на подобни тагове, конструкцията с два URL адреса [img]http://xyzsomething.com/image?)http://x.com/onerror=alert(1);//[/img] се преобразува в <img src="»http://xyzsomething.com/image?)<a" href="»" http:="»»" x.com="»»" onerror="»alert(1);//"»" target="»_blank»" rel="»noopener»" class="»mycode_url»">
Втората уязвимост (CVE-2021-27890) позволява подмяна на SQL команди и изпълнение на собствен код. Проблемът възниква заради подмяна на $theme[‘templateset’] в тялото на SQL заявката без подходяща проверка и изпълнение на компоненти ${…} чрез извикването на eval. Например, може да се организира изпълнение на PHP командата passthru(‘ls’) при обработка на тема с конструкция вида: <templateset>’) AND 1=0 UNION SELECT title, ‘${passthru(\’ls\’)}’ from mybb_templates — <\/templateset>
За експлоатация на втората уязвимост е необходимо използването на сесия с администраторски права на форума. За да може да изпрати заявка с администраторски права, атакуващият може да се възползва от първата уязвимост и да изпрати на администратора лично съобщение с JavaScript код, при разглеждането на което ще бъде експлоатирана втората уязвимост.
Източник: opennet.ru
