Sitecore CMS nelle versioni dalla 7.0 alla 8.2 contiene una vulnerabilità critica nel modulo di protezione anti-CSRF (cross-site request forgery). Un attaccante può falsificare il valore di __CSRFTOKEN in una richiesta HTTP POST e includere un payload dannoso. Poiché il server si fida di questo token e lo elabora in modo insicuro, l’attaccante può eseguire codice arbitrario sul server Sitecore senza alcuna autenticazione. In altre parole, manipolando un token di autenticazione, un attaccante non autenticato può ottenere il pieno controllo di un’istanza Sitecore vulnerabile.
| Prodotto | Sitecore |
| Data | 2025-04-28 10:42:58 |
| Informazioni | Trending, Fix Available |
Riassunto tecnico
-
Modulo vulnerabile: La libreria
Sitecore.Security.AntiCSRFdi Sitecore è progettata per deserializzare un token CSRF al fine di verificare le richieste. Tuttavia, deserializza il contenuto del token senza validarne l’origine o la sicurezza. Questo significa che dati controllati da un attaccante fluiscono direttamente nel deserializzatore. -
Vettore di exploit: L’exploit utilizza il parametro HTTP POST
__CSRFTOKEN. Un attaccante può creare un oggetto .NET serializzato in modo dannoso e inserirlo come valore di__CSRFTOKEN. Quando il codice Anti-CSRF di Sitecore deserializza questo oggetto, qualsiasi comando o script inserito al suo interno viene eseguito sul server. -
Nessuna validazione ⇒ RCE: Poiché non c’è alcuna validazione appropriata o whitelist sul contenuto deserializzato, qualunque payload verrà accettato. In pratica, ciò consente l’esecuzione di codice remoto (RCE) sul server. Il codice dell’attaccante viene eseguito con i privilegi del processo Sitecore, potenzialmente conducendo al pieno controllo del server.
-
Attacco non autenticato: In modo significativo, CVE-2019-9874 non richiede alcun login. Tutte le istanze di Sitecore CMS dalla versione 7.0–7.2 e XP 7.5–8.2 (inclusa la 6.6.3 secondo alcuni advisory) risultano vulnerabili. Un attaccante può inviare il payload via Internet a qualsiasi sito Sitecore esposto pubblicamente con queste versioni e innescare la vulnerabilità.
-
Proof-of-Concept: I ricercatori hanno dimostrato l’exploit utilizzando strumenti come
ysoserial.net. Ad esempio, si genera un payload malevolo (ad es. utilizzando il gadgetTypeConfuseDelegateper eseguire un comando PowerShell) e lo si codifica in base64. Inviando questo valore in__CSRFTOKEN(ad esempio, tramite un POST verso la pagina admin di Sitecore a/sitecore/shell/Applications/Security/CreateNewUser.aspx), il server deserializza ed esegue il payload. Durante i test, ciò ha permesso l’apertura di una shell o l’esecuzione di comandi arbitrari sul sistema target, confermando l’RCE.
Raccomandazioni
-
Applicare le patch ufficiali: Installare immediatamente gli aggiornamenti di sicurezza o le hotfix di Sitecore. (Per le versioni più vecchie, Sitecore ha rilasciato una hotfix per il modulo Anti-CSRF)
-
Aggiornare Sitecore: Aggiornare tutte le istanze a una versione corretta. Sitecore XP 9.1.1 Update-1 o superiore include la correzione per questo problema. Mantenere Sitecore all’ultima versione supportata garantisce la risoluzione di questa ed altre vulnerabilità.
-
Limitare gli endpoint amministrativi: Nel frattempo, bloccare o filtrare tramite firewall l’accesso ai percorsi amministrativi di Sitecore (es. la directory
/sitecore/shelle le relative applicazioni) dalle reti non fidate. Ad esempio, negare le richieste esterne a/sitecore/shellin modo che solo l’accesso interno o autenticato sia consentito. -
Validare gli input e monitorare: Applicare una validazione rigorosa su tutti gli input e token nel codice personalizzato. Anche dopo aver applicato le patch, monitorare i log di Sitecore e il traffico web per valori insoliti di
__CSRFTOKENo richieste POST ripetute alle pagine admin di Sitecore, in quanto possibili indicatori di exploit. Indagare prontamente eventuali errori di deserializzazione o tracce di esecuzione di comandi.