Falha no plug-in de associação do WordPress expõe dados confidenciais de distribuição

Falha no plug-in de associação do WordPress expõe dados confidenciais de distribuição


Um comunicado foi publicado sobre uma vulnerabilidade descoberta no Membership Plugin By StellarWP que expõe dados confidenciais de configuração de pagamento do Stripe em sites WordPress usando o plugin. A falha permite que invasores não autenticados lancem ataques e é classificada como 8,2 (Alta).

Plug-in de associação por StellarWP

O Membership Plugin – Restrict Content By StellarWP é usado por sites WordPress para gerenciar conteúdo pago e privado. Ele permite que os proprietários de sites restrinjam o acesso a páginas, postagens ou outros recursos para que apenas usuários logados ou membros pagantes possam visualizá-los e gerenciar o que os visitantes não pagantes do site podem ver. O plug-in é comumente implantado em sites baseados em assinaturas e membros.

Vulnerável a invasores não autenticados

O comunicado do Wordfence afirma que a vulnerabilidade pode ser explorada por invasores não autenticados, o que significa que nenhum login ou conta de usuário do WordPress é necessário para lançar um ataque. As funções de permissão do usuário não levam em consideração se o problema pode ser acionado, e é isso que torna essa vulnerabilidade específica mais perigosa porque é mais fácil de acionar.

Qual é a vulnerabilidade

O problema decorre da falta de verificações de segurança relacionadas ao processamento de pagamentos do Stripe. Especificamente, o plug-in não conseguiu proteger adequadamente os dados do Stripe SetupIntent.

Um Stripe SetupIntent é usado durante a finalização da compra para coletar e salvar a forma de pagamento de um cliente para uso futuro. Cada SetupIntent inclui um valor client_secret que deve ser compartilhado durante uma finalização de compra ou fluxo de configuração de conta.

O comunicado oficial do Wordfence explica:

“O plugin Membership Plugin – Restrict Content para WordPress é vulnerável à falta de autenticação em todas as versões até, inclusive, 3.2.16 por meio da função ‘rcp_stripe_create_setup_intent_for_saved_card’ devido à falta de verificação de capacidade.

Além disso, o plug-in não verifica uma chave controlada pelo usuário, o que possibilita que invasores não autenticados vazem valores stripe SetupIntent client_secret para qualquer associação.”

De acordo com a documentação oficial do Stripe, a API Setup Intents é usada para configurar um método de pagamento para cobranças futuras sem criar um pagamento imediato. Um SetupIntent inclui um client_secret. A documentação do Stripe afirma que os valores client_secret não devem ser armazenados, registrados ou expostos a ninguém que não seja o cliente pretendido.

É assim que a documentação do Stripe explica qual é o propósito da API Setup Intents:

“Use a API Setup Intents para configurar um método de pagamento para pagamentos futuros. É semelhante a um pagamento, mas nenhuma cobrança é criada.

O objetivo é ter as credenciais de pagamento salvas e otimizadas para pagamentos futuros, ou seja, a forma de pagamento está configurada corretamente para qualquer cenário. Ao configurar um cartão, por exemplo, pode ser necessário autenticar o cliente ou verificar a validade do cartão junto ao banco do cliente. Stripe atualiza o objeto SetupIntent durante todo esse processo.”

A documentação do Stripe também explica que os valores client_secret são usados ​​no lado do cliente para concluir ações relacionadas ao pagamento e devem ser transmitidos com segurança do servidor para o navegador. Stripe afirma que esses valores não devem ser armazenados, registrados ou expostos a ninguém que não seja o cliente relevante.

É assim que a documentação do Stripe explica o valor client_secret:

“client_secret
O segredo do cliente desta Sessão do Cliente. Usado no cliente para configurar o acesso seguro a um determinado cliente.

O segredo do cliente pode ser usado para fornecer acesso ao cliente a partir do seu frontend. Não devem ser armazenados, registrados ou expostos a ninguém que não seja o cliente relevante. Certifique-se de ter o TLS ativado em qualquer página que inclua o segredo do cliente.”

Como o plug-in não impôs as proteções apropriadas, os valores client_secret do Stripe SetupIntent podem ser expostos.

O que isso significa na vida real é que os dados de configuração de pagamento do Stripe associados às assinaturas estavam acessíveis além do escopo pretendido.

Versões afetadas

A vulnerabilidade afeta todas as versões do plugin até a versão 3.2.16 inclusive. O Wordfence atribuiu ao problema uma pontuação CVSS de 8,2, refletindo a sensibilidade dos dados expostos e o fato de que nenhuma autenticação é necessária para desencadear o problema.

Uma pontuação nesta faixa indica uma vulnerabilidade de alta gravidade que pode ser explorada remotamente sem acesso especial, aumentando a importância de atualizações oportunas para sites que dependem do plug-in para gerenciar assinaturas pagas ou conteúdo restrito.

Disponibilidade de patches

O plugin foi atualizado com um patch e já está disponível. O problema foi corrigido na versão 3.2.17 do plugin. A atualização adiciona verificações de permissão e nonce ausentes relacionadas ao tratamento de pagamentos Stripe, abordando as condições que permitiram a exposição dos valores SetupIntent client_secret. Um nonce é um token de segurança temporário que garante que uma ação específica em um site WordPress foi solicitada intencionalmente pelo usuário e não por um invasor mal-intencionado.

O changelog oficial do Membership Plugin divulga com responsabilidade as atualizações:

“3.2.17
Segurança: Adicionadas verificações de permissão e nonce para adicionar métodos de pagamento Stripe.
3.2.16
Segurança: Melhor escape e higienização para atributos de shortcode (restrict) e (register_form).

O que os proprietários de sites devem fazer

Sites que usam Membership Plugin – Restrict Content devem ser atualizados para a versão 3.2.17 ou mais recente.

A falha na atualização do plug-in deixará os dados client_secret do Stripe SetupIntent expostos a invasores não autenticados.

Imagem em destaque por Shutterstock/file404



Source link

Postagens Similares

Deixe um comentário

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