Cercetătorul de securitate Legal Hackers Dawid Golunski a publicat detalii despre o vulnerabilitate neautorizată de resetare a parolei în nucleul WordPress. Golunski a demonstrat cum, în anumite circumstanțe, un atacator putea intercepta e-mailul de resetare a parolei și avea acces la contul unui utilizator.

Dovada conceptului său folosește WordPress folosind variabila SERVER_NAME pentru a obține numele gazdei serverului pentru a crea un antet De la / Return-Path parola de ieșire resetează e-mailul.

Principalele servere web precum Apache setează variabila SERVER_NAME în mod implicit folosind numele de gazdă furnizat de client (în antetul HTTP_HOST):

Https://httpd.apache.org/docs/2.4/mod/core.html#usecanonicalname

Deoarece SERVER_NAME poate fi modificat, un atacator îl poate configura într-un domeniu arbitrar la alegerea sa, de exemplu:

Attackers-mxserver.com

Care i-ar oferi WordPress configurației $ from_email la

[e-mail protejat]

Și astfel se produce un e-mail de ieșire cu calea Return / Return-Path pe acea adresă rău intenționată.

Rezultatele acestui atac special ar depinde de mediul serverului, de configurația specifică a serverului de e-mail și, în unele cazuri, ar necesita interacțiunea cu utilizatorul în cauză. Raportul lui Golunski include o defalcare mai specifică a posibilelor metode care ar putea fi utilizate.

După ce a raportat problema echipei de securitate WordPress în iulie 2016 și, de asemenea, prin intermediul site-ul web HackerOne, Golunski nu a văzut niciun progres și a decis să o facă publica detalii despre vulnerabilitatea publicului.

Deși nu există încă un patch oficial, starul de securitate WordPress Aaron Campbell a spus că problema nu este atât de gravă pe cât poate fi.

« Este o problemă cu prioritate mai mică, dar suntem conștienți de aceasta și este în coada noastră„A spus Campbell. El a explicat setul unic de condiții care ar fi necesare pentru ca aceasta să fie o vulnerabilitate gravă.

« Pentru ca problema să aibă un impact asupra securității, un server trebuie să permită suprascrierea unui antet furnizat de utilizator $ _SERVER ['SERVER_NAME']„A spus Campbell. „Considerăm că configurația serverului este insuficientă (cum ar fi„ display_errors ”acolo unde este cazul pe un server de producție), ceea ce, din păcate, este dincolo de controlul nostru.”

Campbell și-a testat serverele personale Apache și nginx și niciunul dintre ele nu a fost autorizat pentru acest lucru. Pe lângă faptul că are un server configurat greșit, Campbell a spus că ar trebui să aibă loc și una dintre următoarele acțiuni:

  • Un utilizator trebuie să răspundă la un e-mail de resetare a parolei
  • Un răspuns automat trebuie să răspundă la e-mail și să includă originalul
  • Un server de e-mail trebuie să fie compromis sau supraîncărcat, iar mesajul trebuie returnat expeditorului cu cuprins intact

« Dacă serverul dvs. este vulnerabil și nu aveți capacitatea de a repara configurația serverului, tot nu trebuie să faceți nicio modificare a fișierelor WordPress pentru a atenua problema.„A spus Campbell. "Un pic de PHP ca acesta într-un plugin va defini o adresă de e-mail statică la alegere:"

add_filter ('wp_mail_from', funcție ($ from_email) {return '[e-mail protejat]„; });

Campbell a spus că orice modificare pe care WordPress o face asupra nucleului va fi probabil printr-un bilet care în prezent urmărește problema fără perspectivă de securitate. El a spus că este puțin probabil ca o soluție să apară în următoarea versiune de securitate, dar echipa lucrează activ la aceasta. Dacă vor găsi o atenuare bună a problemei, Campbell a spus că o vor împărtăși odată ce vor rezolva toate potențialele ramificații.

Si tu ? Ce părere aveți despre această vulnerabilitate?