Le moteur de forum web MyBB présente plusieurs vulnérabilités qui, combinées, permettent l'exécution de code PHP sur le serveur. Les problèmes se manifestent dans les versions 1.8.16 à 1.8.25 et ont été corrigés dans la mise à jour MyBB 1.8.26.
La première vulnérabilité (CVE-2021-27889) permet à un participant non privilégié du forum d'incorporer du code JavaScript dans des publications, des discussions et des messages privés. Le forum permet l'ajout d'images, de listes et de contenus multimédias via des balises spécifiques qui sont converties en balisage HTML. En raison d'une erreur dans le code de conversion de telles balises, la construction avec une URL double [img]http://xyzsomething.com/image?)http://x.com/onerror=alert(1);//[/img] est convertie en <img src="»http://xyzsomething.com/image?)<a" href="»" http:="»»" x.com="»»" onerror="»alert(1);//"»" target="»_blank»" rel="»noopener»" class="»mycode_url»">
La seconde vulnérabilité (CVE-2021-27890) permet de réaliser une injection de commandes SQL et d'exécuter son propre code. Le problème provient de l'insertion de $theme[‘templateset’] dans le corps de la requête SQL sans nettoyage adéquat et de l'exécution des composants ${…} via un appel à eval. Par exemple, il est possible de lancer une commande PHP passthru(‘ls’) lors du traitement d'un thème avec une structure comme : <templateset>’) AND 1=0 UNION SELECT title, ‘${passthru(\’ls\’)}’ from mybb_templates — <\/templateset>
Pour exploiter la seconde vulnérabilité, il est nécessaire d'utiliser une session avec des droits d'administrateur du forum. Pour pouvoir envoyer une requête avec des droits d'administrateur, l'attaquant peut profiter de la première vulnérabilité et envoyer un message privé à l'administrateur contenant un code JavaScript, dont la consultation entraînera l'exploitation de la seconde vulnérabilité.
Source : opennet.ru
