Em resumo: após o PHP2Shell, a segurança do Craft CMS depende do PHP do servidor, não do Craft. Sobretudo as agências com muitos sites Craft devem verificar agora cada servidor individualmente. Depois do patch e do reinício, devem ser verificados .env, a security key, o devMode, a raiz de documentos e a comparação da Project Config.
O que o PHP2Shell significa para os sites Craft
O Craft CMS é popular entre as agências porque oferece modelos de conteúdo flexíveis e templates limpos. Por isso, muitas agências mantêm dezenas de sites Craft em servidores e pacotes de alojamento diferentes. Segundo a equipa do PHP, as vulnerabilidades PHP CVE-2026-109618 e CVE-2026-109619 permitem executar código malicioso remotamente sem autenticação, independentemente da versão do Craft.
Para as agências, a questão mais importante é, por isso, organizativa: que site corre onde, com que PHP, e quem é responsável pela atualização? Uma lista de todas as instalações com fornecedor de alojamento, estado do PHP e interlocutor é o primeiro passo. Como apoiamos as agências nisso, descreve-o Parceiro de segurança para agências.
Segurança do Craft CMS: verificar a versão do PHP
No Control Panel, Ferramentas > Relatório do sistema mostra a versão do PHP, a base de dados e os plugins instalados. Essa é a versão com que o site corre na web. A consola do Craft php craft, o processamento da fila e as tarefas cron usam, em contrapartida, o PHP da linha de comandos. Ambos têm de ter o patch aplicado.
As versões upstream corrigidas são 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Muitos fornecedores de alojamento incorporam as correções como backport; o número mantém-se então igual. Que versões estão afetadas, mostra-o Que versões do PHP estão afetadas?. Quais as versões do PHP que a sua versão do Craft suporta, verifique-o nos requisitos de sistema da documentação em craftcms.com.
O Craft processa as tarefas em segundo plano numa fila. Se esta correr como processo permanente sob um gestor de processos, este também tem de ser reiniciado após a atualização do PHP.
Pastas e configuração no Craft
| Local | Conteúdo | Ponto de verificação |
|---|---|---|
.env |
Acesso à base de dados, CRAFT_SECURITY_KEY, outras chaves |
Renovar valores em caso de suspeita |
config/general.php |
devMode, allowAdminChanges, caminho para o Control Panel |
Código PHP inserido |
config/project/ |
Project Config em YAML | Comparação com o Git |
web/ |
Raiz de documentos com index.php, cpresources/, muitas vezes uploads |
Ficheiros PHP adicionais |
storage/ |
Registos, ficheiros de execução, muitas vezes cópias de segurança da base de dados | Não acessível pela web |
templates/ |
Templates Twig | JavaScript alheio |
modules/, vendor/ |
Módulos e plugins próprios | Ficheiros alterados, composer audit |
Um ponto muitas vezes ignorado é storage/backups/. O Craft guarda aí cópias de segurança da base de dados, que podem conter dados completos de clientes e de formulários. Esta pasta nunca pode ficar abaixo da raiz de documentos.
Verificações inofensivas na linha de comandos:
# Mostrar as diferenças entre a Project Config e a base de dados
php craft project-config/diff
# Ficheiros PHP na raiz de documentos, exceto index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Em produção, o devMode deve estar em false. Com o devMode ligado, o Craft mostra mensagens de erro detalhadas com caminhos e excertos de código, que facilitam o trabalho aos atacantes.
Control Panel, utilizadores e plugins
O Control Panel fica, por predefinição, em /admin. Verifique que utilizadores têm direitos de administrador e remova os acessos de antigos colaboradores e freelancers. O Craft suporta autenticação de dois fatores; use-a para todas as contas com direitos elevados.
Defina em produção o allowAdminChanges como false. Assim, campos, secções e definições de plugins só podem ser alterados através da Project Config sob controlo de versões, e qualquer desvio salta à vista na comparação com o Git. Os plugins da Plugin Store trazem código PHP próprio; verifique se todos ainda são mantidos e compatíveis com a versão do PHP pretendida.
// config/general.php, excerto para o ambiente de produção
'devMode' => false,
'allowAdminChanges' => false,
O que uma atualização do Craft consegue e o que não consegue
Uma atualização do Craft ou de um plugin corrige falhas nesse código e pode permitir versões mais recentes do PHP. Não aplica patch ao PHP, não reinicia nem o PHP-FPM nem a fila, não renova uma security key exposta e não remove ficheiros alheios de web/ ou storage/.
Para agências com muitas instalações Craft, o que conta depois do patch é sobretudo a repetibilidade. Registe, por site, que versão do PHP corre na web e na linha de comandos, quando foi confirmado o reinício e se as verificações revelaram anomalias. Esta síntese ajuda nas perguntas dos clientes e em futuros alertas. Pense também nos ambientes de staging e de desenvolvimento acessíveis publicamente. Correm muitas vezes com devMode, versões mais antigas e dados reais de clientes e são facilmente esquecidos nas atualizações. Se houver dúvidas sobre se o site de um cliente está afetado, informe o cliente com objetividade, em vez de esperar.
Como ajuda concretamente a PHP SOS?
- Registamos consigo todas as instalações Craft com fornecedor de alojamento, estado do PHP e responsabilidade.
- Fazemos confirmar o patch e o reinício por servidor e guardamos registos a partir de 20/10/2026.
- Verificamos a raiz de documentos,
storage, a configuração, os utilizadores e a comparação da Project Config. - Se pretender, assumimos a manutenção de segurança contínua dos sites dos seus clientes no contrato de manutenção de segurança, também em seu nome.
Perguntas frequentes
O Craft CMS é afetado pelo PHP2Shell?
O Craft CMS em si não tem uma nova vulnerabilidade. Mas corre em PHP, e o PHP2Shell está no PHP. Qualquer instalação Craft num servidor sem patch é, por isso, potencialmente vulnerável, independentemente da versão do Craft.
Onde mostra o Craft a versão do PHP?
No Control Panel, em Ferramentas > Relatório do sistema. Aí constam a versão do PHP, a base de dados e os plugins instalados. Um backport aplicado não se reconhece pelo número; isso é confirmado pelo seu fornecedor de alojamento.
O que é a security key no Craft e porque a renovar?
A security key do ficheiro .env serve para assinar e encriptar dados. Quem a conhece pode, em certas circunstâncias, falsificar sessões ou dados de formulários. Perante uma suspeita, deve renová-la em articulação com a sua agência.
Que vantagem tem allowAdminChanges em false?
Assim, campos, secções e definições de plugins deixam de poder ser alterados em produção através do Control Panel. As alterações passam a vir apenas da Project Config sob controlo de versões, o que torna as manipulações mais difíceis e mais visíveis.