O pesquisador de segurança do Legal Hackers, Dawid Golunski, publicou detalhes de uma vulnerabilidade de redefinição de senha não autorizada no núcleo do WordPress. Golunski demonstrou como, em certas circunstâncias, um invasor pode interceptar o e-mail de redefinição de senha e obter acesso à conta de um usuário.

A prova de conceito utiliza WordPress usando a variável SERVER_NAME para obter o nome do host do servidor para criar um cabeçalho De / Return-Path e-mail de redefinição de senha de saída.

Os principais servidores da web, como o Apache, definem a variável SERVER_NAME por padrão usando o nome do host fornecido pelo cliente (no cabeçalho HTTP_HOST):

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

Como o SERVER_NAME pode ser modificado, um invasor pode configurá-lo em um domínio arbitrário de sua escolha, por exemplo:

Attackers-mxserver.com

O que daria ao WordPress a configuração $ from_email para

[email protegido]

Isso causa um email de saída com o caminho Return / Return-Path nesse endereço malicioso.

Os resultados desse ataque específico dependeriam do ambiente do servidor, da configuração específica do servidor de e-mail e, em alguns casos, exigiria interação do usuário. O relatório de Golunski inclui uma análise mais específica dos métodos possíveis que podem ser usados.

Depois de relatar o problema à equipe de segurança do WordPress em julho de 2016 e também por meio do site da Web HackerOne, Golunski não viu nenhum progresso e decidiu publicar detalhes da vulnerabilidade ao público.

Embora ainda não haja um patch oficial, a estrela de segurança do WordPress Aaron Campbell disse que o problema não é tão sério quanto pode ser.

« É um problema de baixa prioridade, mas estamos cientes disso e está na nossa fila“Disse Campbell. Ele explicou o conjunto único de condições que seriam necessárias para que essa vulnerabilidade fosse séria.

« Para que o problema tenha impacto na segurança, um servidor deve permitir que um cabeçalho fornecido pelo usuário substitua $ _SERVER ['SERVER_NAME']“Disse Campbell. "Consideramos que a configuração do servidor é insuficiente (como 'display_errors' se aplicável em um servidor de produção), o que infelizmente está além do nosso controle."

Campbell testou seus servidores Apache e nginx pessoais e nenhum deles foi licenciado para isso. Além de ter um servidor mal configurado, Campbell disse que uma das seguintes coisas também deve acontecer:

  • Um usuário deve responder a um email de redefinição de senha
  • Uma resposta automática deve responder ao e-mail e incluir o original
  • Um servidor de e-mail deve estar comprometido ou sobrecarregado e a mensagem retornada ao remetente com o conteúdo Intacta

« Se o seu servidor estiver vulnerável e você não puder consertar a configuração do servidor, ainda não será necessário fazer nenhuma alteração nos arquivos do WordPress para aliviar o problema.“Disse Campbell. "Um pouco de PHP como este em um plug-in definirá um endereço de e-mail estático de sua escolha:"

add_filter ('wp_mail_from', função ($ from_email) {return '[email protegido]'; });

Campbell disse que qualquer mudança que o WordPress fizer no kernel provavelmente virá por meio de um tíquete que atualmente rastreia o problema sem perspectiva de segurança. Ele disse que é improvável que uma correção chegue no próximo lançamento de segurança, mas a equipe está trabalhando ativamente nisso. Se eles encontrarem uma boa mitigação para o problema, Campbell disse que a compartilharão assim que resolverem todas as ramificações potenciais.

E você ? O que você acha dessa vulnerabilidade?