Mon. Mar 4th, 2024

Foi encontrada e solucionada uma falha crítica no plugin Better Search Replace para WordPress, que é utilizado por mais de 1 milhão de usuários. Se explorada com sucesso, essa vulnerabilidade pode resultar em exclusões arbitrárias de arquivos, acesso a informações confidenciais e execução de código malicioso.

Grau de seriedade da vulnerabilidade.

As vulnerabilidades são avaliadas em um sistema de pontuação com classificações que vão desde baixo até crítico, indicando sua gravidade.

  • A taxa de queda é de 0,1 a 3,9.
  • Pontuação entre 4,0 e 6,9.
  • Elevado de 7.0 a 8.9.
  • Pontuação perfeita de 9.0-10.0 na crítica.

A vulnerabilidade encontrada no plugin Better Search Replace é considerada crítica, com uma pontuação máxima de 9,8 na escala de gravidade de 1 a 10.

Screenshot of severity score rating of 9.8 of a vulnerability discovered in Better Search Replace WordPress plugin
Imagem:
chsyys/DepositPhotos

Melhor opção para substituir o Plugin do WordPress em uma pesquisa.

O plugin é criado originalmente pela Delicious Brains, mas agora é desenvolvido pelo WP Engine, que adquiriu a empresa. O Melhor Pesquisa e Substituição é uma ferramenta bastante utilizada no WordPress, que facilita e automatiza a realização de pesquisas e substituições no banco de dados de um site WordPress. Essa funcionalidade é especialmente útil em casos de migração de servidor ou em qualquer tarefa relacionada ao site. O plugin está disponível em duas versões: uma gratuita e uma versão paga chamada Pro.

A versão gratuita do plugin possui as seguintes características, conforme descrito no site.

  • “Disponibilização de suporte para serialização em todas as tabelas.”
  • A habilidade de escolher tabelas específicas.
  • A habilidade de realizar uma execução sem a necessidade de atualização para verificar quantos campos serão modificados.
  • Não são necessários outros requisitos do servidor além de ter uma instalação do WordPress em funcionamento.
  • Suporte para WordPress Multisite.
Leia Mais:   Qual é a importância de estabelecer uma cultura de inteligência competitiva para cada marca?

A versão paga Pro oferece recursos extras, como a habilidade de monitorar as alterações feitas, a capacidade de fazer backup e importar o banco de dados durante o uso do plugin, e suporte prolongado.

A razão pela qual o plugin é tão popular é porque é fácil de usar, útil e tem um histórico de confiabilidade.

A fragilidade da injeção de objetos no PHP.

A vulnerabilidade de injeção de objetos em PHP no WordPress acontece quando uma entrada feita pelo usuário é serializada de maneira insegura. A desserialização é o processo de converter as representações de string de objetos de volta para objetos PHP.

O Open Web Application Security Project (OWASP) fornece uma visão geral sobre a vulnerabilidade conhecida como Injeção de Objetos PHP.

A vulnerabilidade de injeção de objetos PHP é um tipo de falha de segurança em um aplicativo que pode ser explorada por um invasor para realizar diferentes tipos de ataques maliciosos, como injeção de código, injeção de SQL, travessia de diretório e negação de serviço, dependendo do cenário.

A vulnerabilidade acontece quando a entrada do usuário não é devidamente tratada antes de ser enviada para a função unserialize() do PHP. Como o PHP permite a serialização de objetos, os invasores podem enviar strings serializadas personalizadas para uma chamada de unserialize() vulnerável, o que resulta em uma injeção arbitrária de objetos PHP no contexto da aplicação.

Para obter êxito na exploração de uma vulnerabilidade de Injeção de Objetos PHP, é necessário que duas condições sejam cumpridas:

  • No aplicativo, é necessário incluir uma classe que tenha a implementação de um método especial do PHP (como __wakeup ou __destruct), que pode ser utilizado para executar ações maliciosas ou iniciar uma sequência de eventos prejudiciais.
  • É necessário declarar todas as classes que serão utilizadas durante o ataque quando o unserialize() vulnerável for chamado, a menos que o carregamento automático de objetos seja suportado para essas classes.
Leia Mais:   A importância do UX para profissionais de marketing: 8 maneiras de aprimorar sua experiência do usuário.

Se um invasor consegue inserir um objeto serializado de sua escolha, ele pode executar código arbitrário ou comprometer a segurança do site. Essa vulnerabilidade ocorre quando as entradas de usuário não são adequadamente verificadas. A sanitização é um processo padrão que verifica os dados de entrada, permitindo apenas os tipos esperados e rejeitando e bloqueando entradas inseguras.

A vulnerabilidade encontrada no plugin Better Search Replace está relacionada à maneira como ele lida com a desserialização durante as operações de pesquisa e substituição. Neste cenário, uma característica de segurança essencial que está ausente é uma cadeia POP, que consiste em uma sequência de classes e funções interligadas, que um invasor pode explorar para executar ações maliciosas quando um objeto não é corretamente desserializado.

Embora o plugin Better Search Replace não incluísse essa sequência, havia ainda o perigo de que outro plugin ou tema instalado no mesmo site contivesse uma sequência POP que pudesse permitir que um invasor lançasse ataques.

A vulnerabilidade é descrita pela Wordfence.

O plugin Better Search Replace para WordPress apresenta uma vulnerabilidade em todas as versões até 1.4.4, permitindo a injeção de objetos PHP através da deserialização de entrada não confiável. Essa falha possibilita que invasores não autenticados insiram um objeto PHP.

Não há nenhuma cadeia de POP presente no plugin vulnerável. Caso haja uma cadeia de POP através de um plugin ou tema adicional instalado no sistema de destino, isso pode permitir que o invasor exclua arquivos arbitrariamente, recupere dados confidenciais ou execute código.

Após a descoberta, o WP Engine agiu imediatamente para resolver o problema. O registro de alterações para a atualização da versão 1.4.5, lançada em 18 de janeiro de 2024, menciona as ações tomadas para solucionar a questão.

Leia Mais:   O que significa marketing de conteúdo? Um guia completo (com mais exemplos)

Em termos de segurança, agora é possível evitar a instanciação de um objeto e a potencial execução de código malicioso armazenado no banco de dados, ao deserializar um objeto durante a pesquisa e substituir as operações com ‘allowed_classes’ => false.

Essa atualização foi lançada depois que a Wordfence divulgou de forma responsável a falha em 18 de dezembro de 2023. Em seguida, o WP Engine desenvolveu e testou a solução para o problema.

Como agir em resposta a essa situação?

Os usuários do plugin Better Search Replace devem realizar a atualização para a versão mais recente imediatamente, a fim de garantir a segurança de seus sites contra atividades indesejadas.