Em resumo: a vulnerabilidade do Joomla de que agora se fala chama-se PHP2Shell e está no PHP do servidor, não no Joomla. Uma atualização do Joomla não a corrige. Depois do patch do PHP e do reinício, deve verificar configuration.php, os overrides de templates, as extensões e a lista de Super Users.
O que o PHP2Shell significa para o Joomla
O Joomla é um CMS em PHP e herda toda a fragilidade do PHP que lhe serve de base. Segundo a equipa do PHP, as vulnerabilidades CVE-2026-109618 e CVE-2026-109619 permitem executar código malicioso sem autenticação. Estão afetados os modos de operação habituais PHP-FPM, Apache com mod_php, php-cgi, FrankenPHP e LiteSpeed.
Sobretudo os sites Joomla mais pequenos de associações, oficinas e federações correm muitas vezes em alojamento partilhado e raramente são mantidos. Aí, a atualização do PHP cabe ao fornecedor de alojamento. A sua tarefa é perguntar o estado e verificar o site quanto a vestígios. Que versões estão afetadas, mostra-o Que versões do PHP estão afetadas?.
Vulnerabilidade Joomla: verificar a versão do PHP
Na área de administração, Sistema > Informação do sistema mostra a versão do PHP e as principais definições do PHP. Essa é a versão com que o Joomla realmente corre na web. As versões upstream corrigidas são 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Se o Joomla mostrar um número mais antigo, pode ainda assim ter sido aplicado um backport; isso tem de ser confirmado pelo seu fornecedor de alojamento.
Em alojamento partilhado, a versão do PHP pode muitas vezes ser alterada por domínio no menu de cliente do fornecedor. Isso só alterna, porém, entre as versões que o fornecedor disponibiliza; se estas têm o patch aplicado, é o fornecedor que decide. Uma mudança para uma versão principal mais recente pode ainda assim fazer sentido, se a sua versão do Joomla e todas as extensões a suportarem. Teste-o antes, pois as extensões mais antigas falham frequentemente com mensagens de erro em versões mais recentes do PHP.
O próprio Joomla indica requisitos mínimos de PHP por versão principal. Quais as versões do PHP que a sua versão do Joomla suporta, verifique-o nos requisitos de sistema em joomla.org. Em versões muito antigas do Joomla, uma mudança de PHP pode exigir primeiro uma atualização do Joomla.
Esconderijos típicos de código malicioso no Joomla
| Local | Conteúdo | O que observar |
|---|---|---|
configuration.php |
Acesso à base de dados, $secret, caminhos de registos e temporários |
Data de alteração, código inserido |
images/, media/ |
Imagens e multimédia | Ficheiros PHP são suspeitos |
tmp/ |
Ficheiros temporários, também de instalações | Restos de pacotes alheios |
templates/<name>/html/ |
Overrides de templates com código PHP | Overrides desconhecidos ou alterados |
plugins/system/ |
Plugins de sistema que carregam em cada pedido | Plugins desconhecidos |
administrator/logs/ |
Registos | Guardar antes de alterações |
.htaccess |
Redirecionamentos, regras de rewrite | Redirecionamentos apenas para motores de busca |
Os plugins de sistema são particularmente apreciados, porque são executados em cada acesso a uma página. Um plugin desconhecido nesta pasta deve ser sempre algo que consiga explicar.
Verificações inofensivas na linha de comandos (o Joomla 4 e posteriores trazem consola própria):
# Ficheiros PHP nas pastas de multimédia e temporárias
find images media tmp -type f -name "*.php"
# Listar utilizadores e extensões
php cli/joomla.php user:list
php cli/joomla.php extension:list
Se o seu site Joomla redireciona visitantes vindos do Google para páginas alheias ou se o Google mostra um aviso, o servidor está muito provavelmente já comprometido. Nesse caso, uma atualização não basta; é necessária uma limpeza e, depois, uma revisão no Search Console.
Acesso de administrador e extensões
A área de administração fica em /administrator. Verifique o grupo de utilizadores «Super Users» quanto a contas desconhecidas e a contas de antigos prestadores de serviços. Ative a autenticação de dois fatores que o Joomla traz de origem e use contas pessoais em vez de partilhadas.
Em muitos sites, as extensões do Joomla Extensions Directory e de terceiros são numerosas: formulários, galerias, construtores de páginas, newsletters. Cada uma traz código PHP próprio e, muitas vezes, funções de upload próprias. As extensões cujo fornecedor já não entrega atualizações são um risco permanente e dificultam qualquer atualização do PHP. Desinstale por completo o que não usa.
O que uma atualização do Joomla consegue e o que não consegue
Uma atualização do Joomla substitui os ficheiros do núcleo e corrige falhas conhecidas no Joomla. Não aplica patch ao PHP, não toca nos overrides de templates nem nas extensões de terceiros e não remove ficheiros que não pertencem ao núcleo. Também as entradas da base de dados, como novos Super Users, permanecem.
Se o seu site já foi alterado, ajuda o procedimento em Site pirateado? Ajuda de emergência remota. Para a procura de backdoors vale a pena o guia Reconhecer e remover webshells.
Se o seu site Joomla foi configurado por uma agência ou por um freelancer, pergunte-lhes que extensões e templates foram adaptados individualmente. Os ficheiros adaptados não se podem simplesmente comparar com o pacote original e exigem uma verificação individual.
Como ajuda concretamente a PHP SOS?
- Consultamos o estado do PHP junto do seu fornecedor de alojamento ou verificamo-lo no seu servidor, incluindo o reinício.
- Guardamos registos, ficheiros e base de dados antes de qualquer alteração.
- Comparamos o núcleo com o pacote original e verificamos overrides, plugins de sistema, pastas de multimédia e Super Users.
- Em caso de descobertas, limpamos o site, renovamos acessos e acompanhamos a remoção de avisos do Google.
Perguntas frequentes
O Joomla é afetado pelo PHP2Shell?
O Joomla em si não tem uma nova vulnerabilidade, mas corre em PHP. Se o PHP do servidor não tiver o patch aplicado, um atacante pode, segundo a equipa do PHP, executar código sem autenticação. Uma atualização do Joomla não altera isso.
Onde encontro a versão do PHP no Joomla?
Na área de administração, em Sistema > Informação do sistema. Aí vê também as definições do PHP. Pelo número não se reconhece se foi aplicado um backport; isso tem de ser confirmado pelo seu fornecedor de alojamento.
Porque são os overrides de templates um risco?
Os overrides ficam na pasta do template e contêm código PHP que substitui a saída de componentes e módulos. O código introduzido passa aí quase despercebido, porque os overrides não são substituídos nas atualizações do Joomla.