În motorul gratuit pentru crearea de forumuri web MyBB au fost descoperite mai multe vulnerabilități care, combinate, permit executarea codului PHP pe server. Problemele apar în versiunile de la 1.8.16 la 1.8.25 și au fost remediate în actualizarea MyBB 1.8.26.
Prima vulnerabilitate (CVE-2021-27889) permite unui participant neprivilegiat al forumului să încorporere cod JavaScript în postări, discuții și mesaje private. Forumul permite adăugarea de imagini, liste și date multimedia prin intermediul tagurilor speciale, care sunt transformate în structură HTML. Din cauza unei erori în codul de conversie a acestor taguri, construcția cu URL dublu [img]http://xyzsomething.com/image?)http://x.com/onerror=alert(1);//[/img] este transformată în <img src="»http://xyzsomething.com/image?)<a" href="»" http:="»»" x.com="»»" onerror="»alert(1);//"»" target="»_blank»" rel="»noopener»" class="»mycode_url»">
A doua vulnerabilitate (CVE-2021-27890) permite injectarea de comenzi SQL și executarea propriului cod. Problema apare din cauza inserării $theme[‘templateset’] în corpul interogării SQL fără o curățare adecvată și executarea componentelor ${…} prin apelul la eval. De exemplu, se poate organiza executarea comenzii PHP passthru(‘ls’) în timpul procesării teme cu o structură de genul: <templateset>’) AND 1=0 UNION SELECT title, ‘${passthru(\’ls\’)}’ from mybb_templates — <\/templateset>
Pentru a explora a doua vulnerabilitate, este necesară utilizarea unei sesiuni cu drepturi de administrator al forumului. Pentru a avea posibilitatea de a trimite o cerere cu drepturi de administrator, atacatorul poate profita de prima vulnerabilitate și să trimită un mesaj privat administratorului cu un cod JavaScript, iar vizualizarea acestuia va exploata a doua vulnerabilitate.
Sursa: opennet.ro
