A falha CVE-2026-48907 no Joomla Content Editor (JCE) recebeu nota máxima de CVSS 10.0 e permite que invasores sem qualquer senha façam upload de webshells PHP e assumam o controle total de servidores web. A CISA confirmou exploração ativa na internet e impôs prazo de correção de apenas três dias, encerrado em 19 de junho de 2026. Todos os sites Joomla com JCE abaixo da versão 2.9.99.5 estão expostos e devem ser atualizados imediatamente.

O que aconteceu

A CISA adicionou em 16 de junho de 2026 a falha CVE-2026-48907 ao seu catálogo de vulnerabilidades conhecidas e exploradas (KEV), com prazo de correção de apenas três dias — 19 de junho. A vulnerabilidade afeta o Joomla Content Editor (JCE), uma das extensões mais instaladas do Joomla, e permite que um atacante sem qualquer credencial faça upload de um webshell PHP e assuma o controle completo do servidor web. O CVSS é 10.0, a nota máxima possível. A CISA confirmou exploração ativa na internet, e campanhas automatizadas já vasculham servidores Linux em busca de alvos vulneráveis.

O que é o CVE-2026-48907

A falha reside na função de importação de perfis do JCE e é classificada como controle de acesso impróprio (CWE-284). Em vez de um bug de memória ou de injeção clássica, o problema é mais prosaico — e por isso mais perigoso: o manipulador de upload de arquivos do editor não verifica se quem faz o pedido está autenticado. A lógica de permissões do perfil do editor deveria bloquear uploads de usuários sem sessão ativa, mas a verificação simplesmente não acontece, conforme detalha o Threat-Modeling.com.

O resultado prático é que qualquer pessoa na internet pode enviar um arquivo PHP malicioso para um diretório acessível pelo navegador, sem precisar de usuário, senha ou sessão administrativa. Depois de escrito no disco, basta acessar a URL do arquivo para executar código arbitrário no contexto do usuário do servidor web.

As versões afetadas vão de 1.0.0 até 2.9.99.4. A correção chegou na versão 2.9.99.5, com a 2.9.99.6 adicionando endurecimento adicional. O fornecedor também liberou patches gratuitos para versões legadas. Tanto a edição Core (gratuita) quanto a Pro (paga) são afetadas.

Como funciona o ataque sem senha

O fluxo de exploração é direto e foi documentado em detalhes pelo LinuxSecurity. O atacante identifica um site Joomla com JCE desatualizado, prepara um arquivo PHP — tipicamente um webshell — e envia um POST não autenticado ao endpoint de upload do JCE, referenciando um ID de perfil de editor válido. Como o perfil pode ser enumerado ou descoberto por tentativa, a barreira técnica é baixíssima.

Ao receber o pedido, o JCE aceita o arquivo e o grava no servidor sem exigir qualquer prova de identidade. O atacante então navega até a URL do arquivo enviado e executa comandos arbitrários. Um código HTTP 200 no log de acesso significa que a invasão provavelmente conseguiu.

O dado que preocupa é a escala. O JCE está instalado em centenas de milhares de sites Joomla ao redor do mundo, segundo o Threat-Modeling.com. A extensão substitui o editor de texto padrão do Joomla por uma interface WYSIWYG rica, com gerenciamento de arquivos e upload de mídia — exatamente as funcionalidades que abrem a porta para o ataque.

Por que três dias bastam

A janela de remediação de 16 a 19 de junho de 2026 é uma das mais curtas que a CISA já impôs. Sob a Diretiva Operacional Vinculante 22-01 (BOD 22-01), órgãos civis federais dos Estados Unidos são obrigados a corrigir falhas do KEV dentro do prazo definido. Três dias indicam que a agência considera a exploração trivial, automatizada e disseminada.

Na prática, isso significa que robôs de varredura já testam essa falha em massa na internet aberta. A CISA não adiciona uma vulnerabilidade ao KEV sem evidências concretas de exploração no mundo real. Se o seu servidor Joomla ainda roda JCE antigo, há uma boa chance de já ter sido sondado — talvez comprometido.

Item Detalhe
CVE CVE-2026-48907
CVSS 10.0 (máximo)
Tipo Controle de acesso impróprio (CWE-284)
Produto Joomla Content Editor (JCE)
Versões afetadas 1.0.0 a 2.9.99.4 (Core e Pro)
Versão corrigida 2.9.99.5 (hardening extra na 2.9.99.6)
Pré-requisito do atacante Nenhum — não requer autenticação
KEV adicionado em 16 de junho de 2026
Prazo CISA 19 de junho de 2026

Quem corre risco no Brasil

O Joomla mantém uma base significativa de instalações no Brasil — portais governamentais, sites de pequenas empresas, blogs institucionais e lojas virtuais. Muitos desses sites rodam em hospedagens compartilhadas Linux, exatamente o ambiente visado pelas campanhas automatizadas. O SC Magazine confirma que os ataques são automatizados e não seletivos: os atacantes varrem grandes faixas de endereços IP em busca de qualquer site vulnerável.

O risco não se limita ao desfiguramento de página. Quando um atacante obtém execução de código no servidor, ele roda comandos como o usuário do web server — o mesmo que possui os arquivos PHP, os arquivos de configuração e frequentemente as credenciais do banco de dados. A partir dali, o invasor pode roubar dados de clientes, instalar malware persistente, usar o servidor como ponte para atacar outros sistemas, ou escalar privilégios até obter acesso root. Como já explicamos em nossa análise de falhas em construtores de CMS, extensões de terceiros são hoje um dos vetores mais subestimados de comprometimento.

Como caçar sinais de invasão

Atualizar o plugin fecha a porta para novos ataques, mas não remove um webshell que já esteja no disco. O LinuxSecurity recomenda uma trilha de caça específica.

Nos logs do Apache ou Nginx, procure por requisições que visem a função de importação de perfis:

  • Filtre por option=com_jce combinado com task=profiles.import
  • Identifique requisições POST vindas de IPs suspeitos
  • Um código de status HTTP 200 indica que a exploração provavelmente funcionou

No sistema de arquivos, procure por arquivos PHP novos em diretórios graváveis:

  • Execute find /var/www/html -name "*.php" -mtime -3 para listar arquivos modificados nos últimos três dias
  • Verifique diretórios como /images/, /tmp/ e /media/, onde atacantes costumam esconder webshells
  • Inspecione manualmente qualquer arquivo desconhecido em busca de código ofuscado

Plano de ação imediato

  1. Identifique a versão: no painel administrativo do Joomla, vá em Components → JCE Editor → Control Panel e confira o número da versão instalada.
  2. Atualize imediatamente: suba para a versão 2.9.99.5 ou superior. Se usa uma versão legada, aplique o patch gratuito disponibilizado pelo fornecedor.
  3. Audite o servidor: siga os passos de caça descritos acima. Não assuma que o patch resolve um comprometimento já ocorrido.
  4. Bloqueie execução de PHP: impeça a execução de código PHP em diretórios que não precisam dela, como /images/ e /upload/, via configuração do servidor.
  5. Use um WAF: configure um firewall de aplicação web para bloquear requisições POST com option=com_jce antes que cheguem ao código. Isto protege mesmo durante a janela de atualização.
  6. Rotacione credenciais: se encontrar evidências de comprometimento, troque senhas de banco de dados, chaves de API e credenciais de acesso ao servidor.

Para uma metodologia completa de priorização e resposta a vulnerabilidades críticas, vale revisitar nosso guia sobre análise e priorização de vulnerabilidades, que cobre frameworks de triagem e classificação de risco.

Uma falha que não deveria existir

O que torna o CVE-2026-48907 especialmente frustrante é a sua natureza. Não se trata de um bug obscuro de memória que exige conhecimento profundo de arquitetura de processadores. É uma verificação de autenticação que simplesmente não foi implementada — ou foi implementada de forma que pode ser ignorada. Erros de controle de acesso como esse estão há anos no topo das listas da OWASP, e continuarão a sê-lo enquanto o teste de segurança de extensões populares for tratado como opcional.

A lição para quem administra sites é clara: a cadeia de fornecedores de uma instalação Joomla inclui dezenas de extensões, cada uma delas uma superfície de ataque independente. Monitorar atualizações de segurança de cada extensão — não apenas do núcleo do Joomla — é trabalho de rotina, não exceção. Em outro caso recente de RCE em extensão de CMS, vimos o mesmo padrão: um plugin popular, uma falha trivial, e milhares de servidores comprometidos antes que a correção chegasse.

Referências