Vulnerabilidades do plug-in NotificationX WordPress WooCommerce impactam 40 mil sites
Um aviso de vulnerabilidade foi publicado para o plugin NotificationX FOMO para sites WordPress e WooCommerce, afetando mais de 40.000 sites. A vulnerabilidade, classificada com nível de gravidade 7,2 (Alto), permite que invasores não autenticados injetem JavaScript malicioso que pode ser executado no navegador do visitante quando condições específicas são atendidas.
NotificaçãoX – Plug-in FOMO
O plugin NotificationX FOMO é usado por proprietários de sites WordPress e WooCommerce para exibir barras de notificação, pop-ups e alertas em tempo real, como vendas recentes, anúncios e mensagens promocionais. O plugin é comumente implantado em sites de marketing e comércio eletrônico para criar urgência e chamar a atenção do visitante por meio de notificações.
Nível de exposição
A vulnerabilidade não requer nenhuma autenticação ou aquisição de qualquer função de usuário antes de lançar um ataque. Os invasores não precisam de uma conta WordPress ou de qualquer acesso prévio ao site para acionar a vulnerabilidade. A exploração depende de fazer com que a vítima visite uma página especialmente criada que interaja com o site vulnerável.
Causa raiz da vulnerabilidade
O problema é uma vulnerabilidade de Cross-Site Scripting (XSS) baseada em DOM vinculada à forma como o plug-in processa os dados de visualização. No contexto de uma vulnerabilidade de plug-in do WordPress, a vulnerabilidade de Cross-Site Scripting (XSS) baseada em DOM ocorre quando um plug-in do WordPress contém JavaScript do lado do cliente que processa dados de uma fonte não confiável (a “fonte”) de maneira insegura, geralmente gravando os dados na página da web (o “coletor”).
No contexto do plug-in NotificationX, a vulnerabilidade existe porque os scripts do plug-in aceitam entrada por meio do parâmetro POST nx-preview, mas não limpam adequadamente a entrada ou escapam da saída antes que ela seja renderizada no navegador. Faltam verificações de segurança que deveriam verificar se os dados fornecidos pelo usuário são tratados como texto simples. Isso permite que um invasor crie uma página da Web maliciosa que envia automaticamente um formulário ao site da vítima, forçando o navegador da vítima a executar scripts prejudiciais injetados por meio desse parâmetro.
O resultado final é que uma entrada controlada pelo invasor pode ser interpretada como JavaScript executável em vez de conteúdo de visualização inofensivo.
O que os invasores podem fazer
Se explorada, a vulnerabilidade permite que invasores executem JavaScript arbitrário no contexto do site afetado. O script injetado é executado quando um usuário visita uma página maliciosa que envia automaticamente um formulário para o site NotificationX vulnerável.
Isso pode permitir que os invasores:
- Invadir sessões de administrador ou editor logadas
- Execute ações em nome de usuários autenticados
- Redirecione visitantes para sites maliciosos ou fraudulentos
- Acesse informações confidenciais disponíveis através do navegador
O comunicado oficial do Wordfence explica:
“O plug-in NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Banner de anúncio e barra de notificação flutuante para WordPress é vulnerável a scripts entre sites baseados em DOM por meio do parâmetro POST ‘nx-preview’ em todas as versões até, inclusive, 3.2.0. Isso se deve à higienização de entrada e ao escape de saída insuficientes ao processar dados de visualização. Isso torna possível que invasores não autenticados injetem arbitrariamente scripts da web em páginas executadas quando um usuário visita uma página maliciosa que envia automaticamente um formulário para o site vulnerável.”
Versões afetadas
Todas as versões do NotificationX até 3.2.0 inclusive são vulneráveis. Um patch está disponível e a vulnerabilidade foi resolvida no NotificationX versão 3.2.1, que inclui melhorias de segurança relacionadas a esse problema.
Ação recomendada
Recomenda-se que os proprietários de sites que usam NotificationX atualizem seu plug-in imediatamente para a versão 3.2.1 ou posterior. Os sites que não conseguem atualizar devem desativar o plug-in até que a versão corrigida possa ser aplicada. Deixar versões vulneráveis ativas expõe visitantes e usuários logados a ataques do lado do cliente que podem ser difíceis de detectar e mitigar.
Mais uma vulnerabilidade
Este plugin tem outra vulnerabilidade classificada como nível de ameaça médio 4,3. O comunicado do Wordfence para este descreve assim:
“O plug-in NotificationX para WordPress é vulnerável à modificação não autorizada de dados devido à falta de verificação de capacidade nos endpoints da API REST ‘regenerar’ e ‘redefinir’ em todas as versões até 3.1.11 inclusive. Isso possibilita que invasores autenticados, com acesso de nível de Colaborador e superior, redefinam análises para qualquer campanha NotificationX, independentemente da propriedade.”
O plug-in NotificationX WordPress inclui dois endpoints da API REST chamados “regenerar” e “redefinir”. Esses endpoints são usados para gerenciar análises de campanha, como redefinir ou reconstruir as estatísticas que mostram o desempenho de uma notificação.
O problema é que esses endpoints não verificam adequadamente as permissões do usuário para modificar dados. Nesse caso, o plugin apenas verifica se um usuário está logado com acesso de Colaborador ou superior, e não se ele realmente tem permissão para realizar a ação. Embora os usuários com a função de nível Colaborador normalmente tenham permissões muito limitadas, essa falha permite que eles executem ações que não deveriam ser capazes de realizar.
Neste caso, o dano que um invasor pode causar é limitado. Por exemplo, um invasor não pode assumir o controle de um site. Atualizado para a versão 3.2.1 ou superior (igual à outra vulnerabilidade) corrigirá esta vulnerabilidade.
Um invasor pode:
- Redefinir análises para qualquer campanha NotificationX
- Faça isso mesmo que eles não tenham criado ou não sejam os proprietários da campanha
- Apagar ou regenerar repetidamente as estatísticas da campanha
Imagem em destaque da Shutterstock/Art Furnace
