Situazione attuale: PHP2Shell. Due vulnerabilità critiche di PHP (CVSS 9,2) consentono codice dannoso senza autenticazione. Patch dal 21/10/2026.Che cosa fare ora →

Sicurezza Craft CMS dopo PHP2Shell: proteggere i siti delle agenzie

Craft CMS gira su PHP ed è spesso usato dalle agenzie con molti siti cliente. Dopo PHP2Shell contano patch, riavvio, Security Key protetta e allineamento della Project Config.

Stato 4 min di letturaPiattaforme

In breve: dopo PHP2Shell la sicurezza di Craft CMS dipende dal PHP del server, non da Craft. Proprio le agenzie con molti siti Craft dovrebbero ora controllare ogni server singolarmente. Dopo patch e riavvio vanno verificati .env, Security Key, devMode, la document root e l'allineamento della Project Config.

Che cosa significa PHP2Shell per i siti Craft

Craft CMS è apprezzato dalle agenzie perché offre modelli di contenuto flessibili e template puliti. Di conseguenza molte agenzie seguono decine di siti Craft su server e pacchetti di hosting diversi. Le vulnerabilità PHP CVE-2026-109618 e CVE-2026-109619 consentono, secondo il team PHP, di eseguire codice dannoso da remoto senza autenticazione, indipendentemente dalla versione di Craft.

Per le agenzie la domanda più importante è quindi organizzativa: quale sito gira dove, con quale PHP, e chi è responsabile dell'aggiornamento? Un elenco di tutte le installazioni con hoster, stato di PHP e referente è il primo passo. Come sosteniamo le agenzie in questo è descritto in Partner di sicurezza per le agenzie.

Sicurezza di Craft CMS: verificare la versione di PHP

Nel Control Panel, Strumenti > Report di sistema mostra la versione di PHP, il database e i plugin installati. È la versione con cui il sito gira sul web. La console di Craft php craft, l'elaborazione della coda e i cronjob usano invece il PHP a riga di comando. Entrambi devono essere aggiornati.

Le versioni upstream corrette sono 8.5.12, 8.4.27, 8.3.36 e 8.2.35. Molti hoster applicano le correzioni come backport; il numero resta allora lo stesso. Quali versioni siano interessate lo mostra Quali versioni di PHP sono interessate?. Quali versioni di PHP supporta la Sua versione di Craft, lo verifichi nei requisiti di sistema nella documentazione su craftcms.com.

Craft elabora le attività in background in una coda. Se gira come processo permanente sotto un gestore di processi, anche questo deve essere riavviato dopo l'aggiornamento di PHP.

Directory e configurazione in Craft

Posizione Contenuto Punto da controllare
.env Accesso al database, CRAFT_SECURITY_KEY, altre chiavi rinnovare i valori in caso di sospetto
config/general.php devMode, allowAdminChanges, percorso del Control Panel codice PHP aggiunto
config/project/ Project Config come YAML confronto con Git
web/ Document root con index.php, cpresources/, spesso upload file PHP aggiuntivi
storage/ Log, file di runtime, spesso backup del database non raggiungibile dal web
templates/ Template Twig JavaScript estraneo
modules/, vendor/ moduli e plugin propri file modificati, composer audit

Un punto spesso trascurato è storage/backups/. Craft vi deposita i backup del database, che possono contenere dati completi di clienti e moduli. Questa cartella non deve mai trovarsi sotto la document root.

Controlli non invasivi da riga di comando:

# Mostrare le differenze tra Project Config e database
php craft project-config/diff
# File PHP nella document root tranne index.php
find web -type f -name "*.php" ! -name "index.php"
composer audit
Importante

In produzione devMode va impostato su false. Con devMode attivo Craft mostra messaggi di errore dettagliati con percorsi e estratti di codice, che facilitano il lavoro agli aggressori.

Control Panel, utenti e plugin

Il Control Panel si trova per impostazione predefinita in /admin. Verifichi quali utenti abbiano diritti di amministratore e rimuova gli accessi di ex collaboratori e freelance. Craft supporta un'autenticazione a due fattori; la usi per tutti gli account con diritti elevati.

In produzione imposti allowAdminChanges su false. Allora campi, sezioni e impostazioni dei plugin si possono modificare solo tramite la Project Config versionata, e ogni scostamento emerge nel confronto con Git. I plugin del Plugin Store portano codice PHP proprio; verifichi se siano tutti ancora manutenuti e compatibili con la versione di PHP prevista.

// config/general.php, estratto per l'ambiente di produzione
'devMode' => false,
'allowAdminChanges' => false,

Che cosa può fare un aggiornamento di Craft e che cosa no

Un aggiornamento di Craft o di un plugin chiude errori in quel codice e può rendere possibili versioni di PHP più recenti. Non applica patch a PHP, non riavvia né PHP-FPM né la coda, non rinnova una Security Key trapelata e non rimuove file estranei da web/ o storage/.

Per le agenzie con molte installazioni Craft, dopo la patch conta soprattutto la ripetibilità. Annoti per ogni sito quale versione di PHP giri sul web e da riga di comando, quando sia stato confermato il riavvio e se i controlli abbiano dato esiti anomali. Questa panoramica aiuta in caso di richieste dei clienti e di future segnalazioni. Pensi anche agli ambienti di staging e di sviluppo raggiungibili pubblicamente. Girano spesso con devMode, versioni più vecchie e dati reali dei clienti e negli aggiornamenti vengono volentieri dimenticati. Se ha dubbi che il sito di un cliente sia interessato, informi il cliente in modo oggettivo anziché aspettare.

In che modo PHP SOS aiuta concretamente?

  • Rileviamo con Lei tutte le installazioni Craft con hoster, stato di PHP e competenze.
  • Ci facciamo confermare patch e riavvio per ogni server e mettiamo al sicuro i log a partire dal 20/10/2026.
  • Controlliamo document root, storage, configurazione, utenti e l'allineamento della Project Config.
  • Su richiesta ci occupiamo dell'assistenza continuativa alla sicurezza dei Suoi siti cliente nel contratto di manutenzione della sicurezza, anche a Suo nome.

Domande frequenti

Craft CMS è interessato da PHP2Shell?

Craft CMS stesso non ha una nuova vulnerabilità. Ma gira su PHP, e PHP2Shell è in PHP. Ogni installazione di Craft su un server non aggiornato è quindi potenzialmente attaccabile, indipendentemente dalla versione di Craft.

Dove mostra Craft la versione di PHP?

Nel Control Panel, in Strumenti > Report di sistema. Lì si trovano versione di PHP, database e plugin installati. Un backport applicato non si riconosce dal numero; lo conferma il Suo hoster.

Che cos'è la Security Key in Craft e perché rinnovarla?

La Security Key nel file .env serve a firmare e cifrare dati. Chi la conosce può, in certe circostanze, falsificare sessioni o dati dei moduli. In caso di sospetto dovrebbe rinnovarla in accordo con la Sua agenzia.

Che cosa porta allowAdminChanges impostato su false?

In questo modo campi, sezioni e impostazioni dei plugin non si possono più modificare in produzione tramite il Control Panel. Le modifiche passano solo dalla Project Config versionata, il che rende le manipolazioni più difficili e più visibili.

Fonti

Contatto immediato

Ogni ora conta. Ci scriva adesso.

Descriva brevemente sistema, versione di PHP e quanto osservato. Ci faremo sentire, chiariremo la situazione e lavoreremo da remoto fino alla chiusura e alla documentazione dell'incidente.

Aiuto immediato