Temas vulneráveis

Falha sem conta no Ocean Extra: a correção 2.6.1 veio antes do alerta

Ocean Extra: falha sem conta, correção na 2.6.1

O Wordfence divulgou em 14 de outubro de 2026 uma falha no Ocean Extra, o plugin complementar do tema OceanWP: até a versão 2.6.0, um visitante sem conta podia fazer o site executar shortcodes arbitrários (CVE-2026-86803). A correção, a versão 2.6.1, está disponível desde 10 de setembro, mais de um mês antes do anúncio. Se você administra um site OceanWP, veja como verificar a sua versão, avaliar a sua exposição real e conferir se não houve abuso.

O que aconteceu

A falha foi descoberta em 28 de junho de 2026 por um pesquisador que assina hashiramasenju333, segundo a cronologia do registro CVE publicado pelo Wordfence, autoridade de numeração (CNA) para esta CVE. O Wordfence avisou a OceanWP em 8 de setembro às 14h56 (horário de Paris). Dois dias depois, em 10 de setembro às 11h35, a versão 2.6.1 do Ocean Extra era publicada no wordpress.org com uma única linha no registro de alterações, “Potential vulnerability patched”, que remete a um relatório do Wordfence de 8 de setembro.

Nada mais vazou durante cinco semanas. Em 14 de outubro às 18h43, o Wordfence publicou a sua ficha, intitulada “Ocean Extra <= 2.6.0 - Unauthenticated Arbitrary Shortcode Execution via 'oceanwp_library' Shortcode Template”. A Patchstack e o WPScan a registraram no mesmo dia, e o registro CVE e depois a base NVD do NIST vieram na manhã de 15 de outubro. No mesmo dia, o enriquecimento publicado pela CISA (programa Vulnrichment) indicava exploração “none”, mas um ataque “automatable”, ou seja, automatizável em grande escala.

Linha do tempo de 2026: 28 de junho, descoberta da falha por hashiramasenju333; 8 de setembro às 14h56, o Wordfence avisa a OceanWP; 10 de setembro às 11h35, publicação do Ocean Extra 2.6.1 com a menção “Potential vulnerability patched”; 13 de outubro, Ocean Extra 2.6.3; 14 de outubro às 18h43, publicação pelo Wordfence, sem conta, CVSS 6,5; 15 de outubro às 7h30, registro CVE e NVD no ar, exploração “none” segundo a CISA.
Cronologia da CVE-2026-86803, horário de Paris. A versão corrigida existia 34 dias antes da divulgação da falha.

Até 19 de outubro, nenhuma fonte reconhecida documenta ataques: nem o Wordfence, nem a Patchstack, nem o WPScan, nem o catálogo KEV da CISA. O site alemão Dr. Web, que cobriu a falha em 15 de outubro, também não relatava nenhum ataque conhecido.

Por que uma correção anterior ao anúncio muda o cenário

Esse intervalo de 34 dias é proposital: os pesquisadores dão aos usuários tempo para atualizar antes de publicar os detalhes. Ele tem três consequências práticas.

  • Os sites com atualização automática de plugins ativada estão protegidos desde 10 ou 11 de setembro, sem precisar fazer nada.
  • Durante essas cinco semanas, a menção “Potential vulnerability patched” não dizia nem a gravidade nem a ausência de autenticação: um administrador que escolhe as atualizações manualmente não tinha motivo para ter pressa. As bases de vulnerabilidades, e portanto as ferramentas de alerta que dependem delas, ainda não conheciam a falha.
  • Desde 14 de outubro, a situação se inverteu: a ficha pública e a correção, que pode ser consultada no repositório Subversion do wordpress.org, indicam exatamente onde procurar. Os sites que ficaram na 2.6.0 ou anterior agora são os alvos óbvios.

Quem é afetado

O Ocean Extra é o plugin gratuito que acrescenta ao tema OceanWP a biblioteca de modelos “My Library”, configurações por página, widgets, a importação de demos e vários shortcodes. Ele tem mais de 400.000 instalações ativas (wordpress.org). Todas as versões até a 2.6.0, inclusive, são afetadas; a 2.6.1 corrige a falha. A versão mais recente em 19 de outubro é a 2.6.3, lançada em 13 de outubro.

ItemCVE-2026-86803
PluginOcean Extra (wordpress.org, slug ocean-extra)
Versões afetadasaté a 2.6.0, inclusive
Corrigida na2.6.1 (10 de setembro de 2026); última versão 2.6.3
Conta exigidaNenhuma
TipoExecução de shortcodes arbitrários (CWE-94, injeção de código)
CVSS 3.16,5, média (Wordfence, adotada pela NVD e pelo WPScan); 5,3 segundo a Patchstack
ExploraçãoNenhuma documentada até 19 de outubro de 2026
Descobertahashiramasenju333, via Wordfence
Ficha de identidade da falha (fontes: registro CVE, NVD, Patchstack, WPScan, registro de alterações do Ocean Extra).

Os rótulos divergem. A Patchstack classifica a falha como “execução de código arbitrário”, embora lhe dê prioridade baixa, e alguns agregadores falam em execução remota de código. A descrição do Wordfence é mais precisa: o que é executado são shortcodes, não código PHP escolhido pelo atacante. A gravidade real depende, portanto, dos shortcodes instalados no seu site.

Nem todas as instalações estão expostas da mesma forma. Segundo a correção, só está em jogo o caso de um modelo “My Library” criado com o editor de blocos; os modelos feitos com Elementor, Beaver Builder ou SiteOrigin passam por outro caminho no código. Atualize em todos os casos.

Um ponto de atenção para o futuro: o WPScan e o Wordfence também listam, desde 23 de setembro, um XSS armazenado explorável por um colaborador e corrigido na 2.6.2, enquanto a Patchstack retirou em 1º de outubro o identificador CVE que havia atribuído a ele (CVE-2026-94684), classificando-o como falso positivo. Ir direto para a 2.6.3 resolve a questão.

Como a falha funcionava

Um shortcode é um código entre colchetes, como , que o WordPress substitui por conteúdo. É uma ferramenta de administrador: o WordPress não interpreta os shortcodes escritos pelos visitantes, por exemplo em um comentário. O Ocean Extra fornece o shortcode [oceanwp_library id="…"], que exibe um modelo da biblioteca “My Library” (cabeçalho, rodapé, bloco reutilizável).

O Wordfence descreve a causa em uma frase: uma action “não valida corretamente um valor antes de chamar do_shortcode”. A correção publicada no repositório do wordpress.org é mais reveladora. Até a 2.6.0, para um modelo criado com o editor de blocos, o Ocean Extra primeiro calculava os blocos (função do_blocks) e depois passava todo o resultado por do_shortcode. Acontece que alguns blocos são dinâmicos: o conteúdo deles é gerado na exibição e pode conter texto vindo de fora. O comentário acrescentado na correção cita os comentários como exemplo. Um visitante que inserisse um shortcode nesse tipo de texto o via interpretado na segunda passagem, com as permissões do site.

Diagrama em quatro etapas: 1, o shortcode oceanwp_library exibe um modelo do My Library; 2, do_blocks calcula os blocos dinâmicos, cuja renderização pode conter um texto de visitante, como um comentário; 3, do_shortcode passa pelo resultado e interpreta um shortcode inserido nesse texto; correção 2.6.1, os shortcodes são processados antes dos blocos, e só o conteúdo salvo do modelo passa por do_shortcode.
Mecanismo da CVE-2026-86803, segundo a correção da versão 2.6.1 (a nossa leitura do código; o Wordfence não publicou um cenário detalhado).

A versão 2.6.1 inverte a ordem: os shortcodes do modelo salvo são processados primeiro, depois os blocos são renderizados, e o resultado não passa mais por do_shortcode. O que um atacante pode obter depende dos shortcodes disponíveis: exibir um conteúdo que não deveria aparecer, disparar uma função de outro plugin, injetar conteúdo na página. Isso explica a nota CVSS: impacto baixo na confidencialidade e na integridade, nenhum na disponibilidade, mas sem autenticação nem interação necessárias.

É a segunda execução de shortcodes sem conta no Ocean Extra, depois da CVE-2025-3472 (versão 2.4.6, abril de 2025, que exigia o WooCommerce ativo), e a segunda falha envolvendo o shortcode oceanwp_library, depois de um XSS por colaborador em agosto de 2025 (CVE-2025-9499). Veja o histórico completo das falhas do OceanWP e do Ocean Extra.

Indicadores e verificações no seu site

Nenhum alerta publicado traz indicadores de comprometimento (endereço IP, arquivo, usuário ou requisição típica). As verificações abaixo servem para medir a sua exposição e identificar rastros plausíveis; elas não substituem um diagnóstico completo. Comece pela versão instalada:

wp plugin list --name=ocean-extra --fields=name,version,status,update
wp plugin verify-checksums ocean-extra

Em seguida, liste os modelos da biblioteca e os shortcodes registrados no site, para saber o que um atacante poderia ter chamado:

wp post list --post_type=oceanwp_library --fields=ID,post_title,post_status,post_modified
wp eval 'echo implode( "\n", array_keys( $GLOBALS["shortcode_tags"] ) );'

Depois, procure comentários recentes que contenham um colchete de abertura, possível sinal de tentativa (ajuste o prefixo wp_ das suas tabelas):

wp db query "SELECT comment_ID, comment_date, comment_author_IP, comment_approved, LEFT(comment_content, 120) FROM wp_comments WHERE comment_content LIKE '%[%' AND comment_date > '2026-06-01' ORDER BY comment_date DESC"

Por fim, as verificações de praxe em caso de dúvida:

  • wp user list --role=administrator --fields=ID,user_login,user_email,user_registered: nenhum administrador desconhecido;
  • wp core verify-checksums: arquivos do núcleo intactos;
  • find wp-content -name "*.php" -mtime -45: arquivos PHP modificados desde o início de setembro, a justificar um por um;
  • nos logs do servidor, requisições repetidas para as páginas que exibem um modelo “My Library”, ou envios de comentários em rajada a partir de um mesmo endereço.

O que fazer agora

  • Atualize o Ocean Extra para a 2.6.3, a última versão em 19 de outubro (no mínimo para a 2.6.1), em Painel → Atualizações ou com wp plugin update ocean-extra.
  • Se o plugin está instalado mas não é usado, desative-o e depois exclua-o: os arquivos dele continuam atacáveis enquanto estiverem no servidor.
  • Se você não puder atualizar imediatamente, retire temporariamente da exibição os modelos “My Library” criados com o editor de blocos que contêm blocos dinâmicos, e coloque os novos comentários em moderação.
  • Se as verificações revelarem um abuso (administrador desconhecido, arquivo PHP suspeito), troque as senhas dos administradores, renove as chaves de segurança do wp-config.php, revogue as senhas de aplicativo e depois restaure um backup limpo. O guia de limpeza de um site WordPress invadido detalha as etapas.

Reduzir a exposição da próxima vez

Este caso ilustra uma situação frequente: a correção existe antes que alguém saiba que ela é urgente. A melhor defesa, portanto, é aplicar as atualizações de segurança sem esperar o anúncio. As atualizações automáticas dos plugins teriam protegido esses sites desde setembro. Para os sites em que você prefere aprovar cada atualização, um monitoramento de vulnerabilidades assume no momento da divulgação, e uma visão geral das atualizações pendentes evita que um site esquecido fique semanas atrasado. Limite também as funções e as contas ao estritamente necessário (princípio do menor privilégio), mantenha backups testados e considere um firewall de aplicação com correções virtuais para cobrir o intervalo entre o anúncio e a atualização.

O WP Masquerade Pro pode ajudar em parte desse trabalho, sem substituí-lo. Os seus alertas de vulnerabilidades comparam todos os dias as versões instaladas dos plugins e temas do wordpress.org, entre eles o Ocean Extra, com a base pública WPVulnerability.net, e avisam por e-mail. Eles não teriam sinalizado nada antes de 14 de outubro: enquanto uma falha não é publicada, nenhuma base a conhece.

O registro de atividades dos administradores mostra uma conta criada ou um plugin instalado de forma inesperada, a partir da sua ativação e apenas para o que passa pelo WordPress, e a verificação de integridade só confere os arquivos do núcleo, não os do Ocean Extra. As atualizações pendentes e os sites vulneráveis de todos os seus sites aparecem na sua área de membros. O plugin alerta: ele não corrige nada e não é um firewall.

Para lembrar

  • CVE-2026-86803: execução de shortcodes sem conta no Ocean Extra até a 2.6.0, CVSS 6,5 segundo o Wordfence.
  • Corrigida na 2.6.1 em 10 de setembro de 2026, divulgada em 14 de outubro: os sites com atualização automática já estavam protegidos.
  • Só os modelos “My Library” criados com o editor de blocos estão em jogo, segundo a correção.
  • Nenhuma exploração documentada até 19 de outubro; atualize para a 2.6.3 e verifique administradores e arquivos recentes.

Fontes

  • CVE.org: CVE-2026-86803, Ocean Extra 2.6.0 e versões anteriores (15 de outubro de 2026) (link externo, abre em uma nova aba)
  • WordPress.org Plugin Trac: changeset 3689650, ocean-extra/includes/panel/library-shortcode.php (10 de setembro de 2026) (link externo, abre em uma nova aba)
  • CVE.org: CVE-2026-94684, identificador rejeitado pela Patchstack (1º de outubro de 2026) (link externo, abre em uma nova aba)
  • NVD: CVE-2025-3472, Ocean Extra 2.4.6 e versões anteriores (22 de abril de 2025) (link externo, abre em uma nova aba)

Outras fontes consultadas: outros registros CVE, páginas oficiais dos fornecedores, artigos da imprensa especializada, bancos de dados Wordfence, WPScan e Patchstack.

Temas vulneráveis8 min

Falha no Blocksy Companion: vendedor Dokan sem conta, correção 2.1.59

Uma falha do Blocksy Companion permite que um visitante sem conta vire vendedor Dokan e entre logado automaticamente. Só as lojas com Dokan estão expostas; a…

Segurança WordPress, sem ruído

Um e-mail quando importa: novos ataques observados, atualizações do plugin e guias práticos. Sem spam, cancelamento com um clique.

Comece de graça e mude para o Pro quando estiver pronto

A versão gratuita já oculta o WordPress e muda o endereço da página de login. O Pro acrescenta aliases, verificação em duas etapas e monitoramento.