Vulnerabilidade de plug-in estendido de campos personalizados avançados do WordPress

Vulnerabilidade de plug-in estendido de campos personalizados avançados do WordPress


Um comunicado foi publicado sobre uma vulnerabilidade no popular plugin Advanced Custom Fields: Extended WordPress com classificação 9,8, afetando até 100.000 instalações.

A falha permite que invasores não autenticados se registrem com privilégios de administrador e obtenham controle total de um site e de todas as configurações.

Campos personalizados avançados: plug-in estendido

O plugin Advanced Custom Fields: Extended é um complemento do popular plugin Advanced Custom Fields Pro. Ele é usado por proprietários e desenvolvedores de sites WordPress para ampliar o funcionamento dos campos personalizados, gerenciar formulários front-end, criar páginas de opções, definir tipos de postagem e taxonomias personalizadas e personalizar a experiência de administração do WordPress.

O plugin é amplamente utilizado, com mais de 100.000 instalações ativas, e é comumente implantado em sites que dependem de formulários front-end e fluxos de trabalho avançados de gerenciamento de conteúdo.

Quem pode explorar esta vulnerabilidade

Esta vulnerabilidade pode ser explorada por invasores não autenticados, o que significa que não há barreira de primeiro ter que atingir um nível de permissão mais alto antes de lançar um ataque. Se a versão afetada do plugin estiver presente com uma configuração específica, qualquer pessoa na Internet pode tentar explorar a falha. Esse tipo de exposição aumenta significativamente o risco porque elimina a necessidade de credenciais comprometidas ou acesso interno.

Exposição de escalonamento de privilégios

A vulnerabilidade é uma falha de escalonamento de privilégios causada pela falta de restrições de função durante o registro do usuário.

Especificamente, a função insert_user do plugin não limita quais funções de usuário podem ser atribuídas quando uma nova conta de usuário é criada por qualquer pessoa. Em circunstâncias normais, o WordPress deve controlar estritamente quais funções os usuários podem selecionar ou atribuir durante o registro.

Como esta verificação está faltando, um invasor pode enviar uma solicitação de registro que atribua explicitamente a função de administrador à nova conta.

Esse problema ocorre apenas quando a configuração do formulário do site mapeia um campo personalizado diretamente para o campo de função do WordPress. Quando essa condição for atendida, o plugin aceita o valor da função fornecido sem verificar se é seguro ou permitido.

A falha parece ser devido à validação insuficiente do lado do servidor do campo “Escolhas” do formulário. O plugin parece ter dependido do formulário HTML para restringir quais funções um usuário poderia selecionar. Por exemplo, o desenvolvedor pode criar um formulário de inscrição de usuário com apenas a função de “assinante” como opção. Mas não houve verificação no back-end para verificar se a função de usuário com a qual o assinante estava se inscrevendo correspondia às funções de usuário às quais o formulário deveria estar limitado.

O que provavelmente estava acontecendo é que um invasor não autenticado poderia inspecionar o HTML do formulário, ver o campo responsável pela função do usuário e interceptar a solicitação HTTP para que, por exemplo, em vez de enviar role=subscriber, o invasor pudesse alterar o valor para role=administrator. O código responsável pela ação insert_user pegou essa entrada e a passou diretamente para as funções de criação de usuários do WordPress. Não verificou se “administrador” era realmente uma das opções permitidas na lista “Opções” do campo.

O Changelog do plugin lista a seguinte entrada como um dos patches do plugin:

“Validação forçada de campos de front-end em relação às respectivas configurações de “Escolhas”.

Essa entrada no changelog significa que o plugin agora verifica ativamente os envios de formulários front-end para garantir que o valor enviado corresponda às “Escolhas” definidas no campo, em vez de confiar em qualquer valor postado.

Há também esta entrada no changelog:

“Módulo: Formulários – Adicionada medida de segurança para formulários permitindo seleção de função de usuário”

Esta entrada significa que o plug-in adicionou proteções do lado do servidor para evitar abusos quando um formulário front-end tem permissão para definir ou selecionar uma função de usuário do WordPress.

No geral, os patches do plug-in adicionaram controles de validação mais fortes para formulários front-end e os tornaram mais configuráveis.

O que os invasores podem ganhar

Se explorado com sucesso, o invasor obtém acesso de administrador ao site WordPress.

Esse nível de acesso permite que os invasores:

  • Instale ou modifique plug-ins e temas
  • Injetar código malicioso
  • Crie contas de administrador backdoor
  • Roubar ou manipular dados do site
  • Redirecione visitantes ou distribua malware

Obter acesso de administrador é uma aquisição completa do site.

O comunicado do Wordfence descreve o problema da seguinte forma:

“O plugin Advanced Custom Fields: Extended para WordPress é vulnerável ao Privilege Escalation em todas as versões até 0.9.2.1, inclusive. Isso ocorre porque a função ‘insert_user’ não restringe as funções com as quais um usuário pode se registrar. Isso possibilita que invasores não autenticados forneçam a função de ‘administrador’ durante o registro e obtenham acesso de administrador ao site.”

Conforme descreve o Wordfence, o plug-in confia na entrada fornecida pelo usuário para funções de conta quando não deveria. Essa confiança permite que os invasores contornem as proteções normais do WordPress e concedam a si próprios o nível de permissão mais alto possível.

O Wordfence também relata ter bloqueado tentativas de exploração ativas direcionadas a esta vulnerabilidade, indicando que os invasores já estão investigando sites em busca de exposição.

Condições necessárias para exploração

A vulnerabilidade não pode ser explorada automaticamente em todos os sites que executam o plugin.

A exploração exige que:

  • O site usa um formulário front-end fornecido pelo plugin
  • O formulário mapeia um campo personalizado diretamente para a função de usuário do WordPress

Status do patch e o que os proprietários do site devem fazer

A vulnerabilidade afeta todas as versões até 0.9.2.1 inclusive. O problema é resolvido na versão 0.9.2.2, que introduz validação adicional e verificações de segurança em torno de formulários front-end e manipulação de funções de usuário.

A entrada para o changelog oficial do ACF Extended Basic 0.9.2.2:

  • Módulo: Formulários – Validação forçada de campos front-end em relação às suas respectivas configurações de “Escolhas”
  • Módulo: Formulários – Adicionada medida de segurança para formulários permitindo seleção de função de usuário
  • Módulo: Formulários – Adicionado gancho acfe/form/validate_value para validar campos individualmente na frente
  • Módulo: Formulários – Adicionado gancho acfe/form/pre_validate_value para ignorar a validação forçada

Os proprietários de sites que usam este plug-in devem atualizar imediatamente para a versão corrigida mais recente. Se a atualização não for possível, o plugin deverá ser desabilitado até que a correção possa ser aplicada.

Dada a gravidade da falha e a falta de autenticação necessária para explorá-la, atrasar a ação deixa os sites afetados expostos a uma aquisição completa.

Imagem em destaque da Shutterstock/Art Furnace



Source link

Postagens Similares

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *