Situação atual: PHP2Shell. Duas vulnerabilidades críticas do PHP (CVSS 9,2) permitem executar código malicioso sem autenticação. Patches disponíveis desde 21/10/2026.O que fazer agora →

Segurança Craft CMS após o PHP2Shell: proteger os sites de agências

O Craft CMS corre em PHP e é muito usado por agências com muitos sites de clientes. Após o PHP2Shell contam o patch, o reinício, uma security key protegida e a comparação da Project Config.

Atualizado em 5 min de leituraPlataformas

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
Importante

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.

Fontes

Contacto imediato

Cada hora conta. Escreva-nos agora.

Descreva brevemente o sistema, a versão do PHP e o que observou. Entramos em contacto consigo, esclarecemos a situação e trabalhamos remotamente até o incidente estar concluído e documentado.

Ajuda imediata