Vulnerabilidade DoS afeta site WordPress

Uma vulnerabilidade de negação de serviço (DoS) de nível de aplicação simples foi descoberta na plataforma do WordPress CMS que poderia permitir que qualquer pessoa derrubasse a maioria dos sites do WordPress, mesmo com uma única máquina sem necessitar de uma enorme quantidade de largura de banda, conforme exigido na rede para ataques DDoS de nível, afim de alcançar o mesmo propósito.

Uma vez que a empresa negou corrigir o problema, a vulnerabilidade CVE-2018-6389) permanece sem precedentes e afeta quase todas as versões do WordPress lançadas nos últimos nove anos, incluindo a última versão estável do WordPress (Versão 4.9.2).

Descoberto pelo pesquisador de segurança israelense Barak Tawily, a vulnerabilidade reside na forma como “load-scripts.php”, um script embutido no WordPress CMS, que processa solicitações definidas pelo usuário.

Para aqueles que não sabem, o arquivo load-scripts.php foi projetado para que os usuários de administração ajudem um site a melhorar o desempenho e carregar a página mais rapidamente ao combinar (no servidor) vários arquivos JavaScript em uma única solicitação.

No entanto, para fazer o “load-scripts.php” funcionar na página de login do administrador (wp-login.php) antes do login, os autores do WordPress não mantiveram qualquer autenticação no lugar, tornando o recurso acessível a qualquer pessoa.

wordpress dos attack

Dependendo dos plugins e módulos que você instalou, o arquivo load-scripts.php seletivamente chama arquivos JavaScript necessários passando seus nomes para o parâmetro “load”, separados por uma vírgula, como na seguinte URL:

https://sua-wordpress-site.com/wp-admin/load-scripts.php?c=1&load=editor,common,user-profile,media-widgets,media-gallery

Ao carregar o site, o “load-scripts.php” (mencionado no cabeçalho da página) tenta encontrar cada nome de arquivo JavaScript fornecido no URL, anexar seu conteúdo em um único arquivo e depois enviá-lo para a web do usuário navegador.

Como funciona o ataque de DoS no WordPress

wordpress-dos-attack-tool

De acordo com o pesquisador, pode-se simplesmente forçar o load-scripts.php a chamar todos os arquivos JavaScript possíveis (ou seja, 181 scripts) de uma vez passando seus nomes para o URL acima, tornando o site segmentado ligeiramente lento ao consumir CPU do servidor, desta forma elevando o consumo de memória.

“Existe uma lista bem definida ($wp_scripts), que pode ser solicitada pelos usuários como parte do parâmetro load []. Se o valor solicitado existe, o servidor executará uma ação de leitura de E/S para um caminho bem definido associado ao valor fornecido pelo usuário “, diz Tawily.

Embora um único pedido não seja suficiente para derrubar todo o site para seus visitantes, utilizou um script Python de prova de conceito (PoC), doer.py, o que faz um grande número de solicitações simultâneas para o mesmo URL em uma tentativa para usar o máximo possível de recursos de CPU dos servidores alvo e derrubá-lo.

O Hacker verificou a autenticidade da exploração DoS com êxito em um dos nossos sites de demonstração WordPress executado em um servidor VPS de tamanho médio.

“É hora de mencionar novamente que o load-scripts.php não exige nenhuma autenticação, um usuário anônimo pode fazê-lo. Após aproximadamente ~ 500 solicitações, o servidor não respondeu mais ou retornou o status 502/503/504 erros de código “, diz Tawily.

No entanto, o ataque de uma única máquina, com alguma conexão de 40 Mbps, não foi suficiente para derrubar outro site de demonstração rodando em um servidor dedicado com alto poder de processamento e memória.

wordpress-hacking

Mas isso não significa que a falha não seja eficaz contra os sites do WordPress que funcionam em um servidor pesado, pois o ataque no nível da aplicação geralmente requer muito menos pacotes e largura de banda para alcançar o mesmo objetivo de tirar um site do ar.

Então, os atacantes com mais largura de banda ou alguns bots podem explorar essa falha para segmentar sites grandes e populares da WordPress.

Juntamente com a divulgação completa, Tawily também forneceu uma demonstração de vídeo para o ataque do WordPress Denial of Service. Você pode assistir o vídeo para ver o ataque em ação.

 

 

Sabendo que as vulnerabilidades do DoS estão fora do escopo do programa de recompensas de inscrições do WordPress, foi relatato de forma responsável esta vulnerabilidade DoS à equipe do WordPress, através da plataforma HackerOne.

No entanto, a empresa se recusou a reconhecer o problema, dizendo que esse tipo de bug “deveria realmente ser mitigado no final do servidor ou no nível da rede, em vez do nível do aplicação”, que está fora do controle do WordPress.

A vulnerabilidade parece ser bem séria porque o WordPress detém quase 29% da Web, colocando milhões de sites vulneráveis a crackers e tornando-os indisponíveis para seus usuários legítimos.

Para sites que não podem pagar serviços que oferecem proteção DDoS contra ataques de camada de aplicativo, o pesquisador forneceu uma versão bifurcada do WordPress, que inclui mitigação contra essa vulnerabilidade.

No entanto, eu pessoalmente não recomendaria que os usuários instalassem o CMS modificado, mesmo que provenha de uma fonte confiável diferente do autor original.

Além disso, o pesquisador também lançou um simples script bash que corrige o problema, caso você já tenha instalado o WordPress.

Link do script bash: https://github.com/Quitten/WordPress/blob/master/wp-dos-patch.sh

Fonte: https://thehackernews.com/2018/02/wordpress-dos-exploit.html?m=1