A fost descoperită o vulnerabilitate de Remote Code Execution (RCE) în platforma populară Moodle, utilizată pe scară largă în mediile academice și de afaceri. Această vulnerabilitate permite atacatorilor să execute cod arbitrar pe server-ul unde este găzduit Moodle.
TL;DR
- Vulnerabilitate Remote Code Execution (RCE) în Moodle descoperită
- Permite atacatorilor să execute cod arbitrar
- Rezolvată în versiunile 4.4.2, 4.3.6, 4.2.9 și 4.1.12
- Important de actualizat Moodle pentru securitate
Ce este Moodle?
Moodle este un sistem de management al învățării (LMS) folosit de multe universități și companii pentru a crea resurse educaționale și a gestiona cursuri online. Fiind o platformă complexă, are unele aspecte surprinzătoare de securitate.
Descoperirea vulnerabilității
În cadrul unui penetration test, a fost descoperită o vulnerabilitate semnificativă în formularul de întrebări calculate din Moodle, care permitea executarea de cod PHP prin funcția eval
. Acest lucru se datorează faptului că formula răspunsului permite introducerea unor expresii nesigure care sunt apoi trecute direct prin eval
. Deși există mecanisme de validare, acestea nu au reușit să blocheze toate atacurile posibile.
Exploatarea vulnerabilității
Validarea formulelor conține unele limite, cum ar fi interzicerea comentariilor PHP și definirea unui set de caractere și funcții sigure. Cu toate acestea, anumite expresii matematice complexe permit ocolirea acestor restricții pentru a crea și executa comenzi arbitrare.
Pentru a exploata această vulnerabilitate, atacatorii pot defini o formulă de răspuns care să construiască numele unei funcții și să realizeze substituirea variabilelor astfel încât comanda să fie executată atunci când este evaluată de eval
. Un exemplu de formulă de răspuns ar putea fi:
(1)->{system($_GET[chr(97)])}
Aceasta permite executarea unei comenzi arbitrare de la distanță prin simpla adăugare a unui parametru de query la URL.
Protejarea împotriva RCE
Pentru a vă proteja împotriva acestui tip de vulnerabilitate, asigurați-vă că Moodle este actualizat la una dintre versiunile care au rezolvat problema: 4.4.2, 4.3.6, 4.2.9 și 4.1.12. Evitați utilizarea funcției eval
când lucrați cu date introduse de utilizatori și utilizați în schimb librării de parsing dedicate.
Situația a fost remediată de echipa de securitate Moodle și acum setul de caractere permis în formule a fost strict limitat pentru a evita astfel de atacuri. De asemenea, au fost planificate îmbunătățiri viitoare pentru a înlocui complet funcția eval
cu o librărie de parsing customizată.