← Tutti gli articoli

Gli attacchi PHP2Shell superano i 74.000 tentativi bloccati mentre le correzioni restano urgenti

Gli attacchi PHP2Shell superano i 74.000 tentativi bloccati mentre le correzioni restano urgenti

Gli attacchi PHP2Shell hanno generato oltre 74.000 tentativi di exploit o probing bloccati, anche se Wordfence afferma di non aver confermato alcuna compromissione conseguente tra gli oltre 5.000.000 di siti WordPress che protegge. L'azienda considera l'assenza di casi confermati un'indicazione della complessità dell'exploit, non una prova che i server privi di patch siano sicuri.

Il progetto PHP ha pubblicato aggiornamenti di emergenza il 21 ottobre 2026 per due vulnerabilità critiche, CVE-2026-109618 e CVE-2026-109619. PHP è il software di programmazione che esegue WordPress sul server di hosting. I proprietari dei siti devono installare PHP 8.5.12, 8.4.27, 8.3.36 o 8.2.35, oppure utilizzare un pacchetto del fornitore esplicitamente confermato come contenente entrambe le correzioni. Ogni PHP worker, ossia un processo del server che gestisce le richieste PHP, deve quindi essere riavviato. L'aggiornamento di WordPress non aggiorna PHP.

Wordfence aveva avvertito i proprietari dei siti prima che le correzioni diventassero disponibili, quindi ha esaminato i dettagli delle vulnerabilità e sottoposto a test le release vulnerabili e quelle corrette. Da allora, il suo firewall ha intercettato tentativi associati alle due vulnerabilità, oltre ad attacchi correlati diretti alla stessa superficie PHP relativa a multipart e session upload progress. Le richieste multipart suddividono i dati inviati in più sezioni, generalmente quando un browser carica un file. PHP session upload progress è una funzionalità che registra lo stato di un caricamento nei dati temporanei della sessione. Wordfence afferma che sta ampliando il monitoraggio con l'evolversi della minaccia.

Un grande cluster di attacchi invia richieste POST contenenti campi ripetuti denominati t[n]. Wordfence ha valutato questi campi come tentativi di creare pressione sulla memoria e influenzare il modo in cui PHP alloca i dati delle richieste. Le stringhe incorporate includono la funzione di comando system e il marcatore P2S_OK, indicando una fase prevista di remote code execution (RCE), nella quale un aggressore induce il server a eseguire comandi. La richiesta di esempio conteneva 136 campi di questo tipo, 134 dei quali sono stati omessi dal campione pubblicato da Wordfence. I comandi tentavano di visualizzare le variabili d'ambiente e leggere i primi 200 byte di .env, ../.env, ../../.env e wp-config.php, file che possono contenere impostazioni dell'applicazione, credenziali del database e altri dati segreti. La richiesta dimostra l'intento, ma non prova che la corruzione della memoria o l'esecuzione dei comandi siano riuscite.

Wordfence ha inoltre esaminato 10.000 eventi raccolti dal 20 al 22 ottobre. Il campione è stato selezionato sulla base di richieste che facevano riferimento a PHP_SESSION_UPLOAD_PROGRESS, quindi non è rappresentativo di tutto il traffico malevolo. Conteneva 3.752 apparenti tentativi RCE P2S di tipo out-of-memory o state-corruption, volti a condizionare le allocazioni, eseguire comandi e sottrarre dati di configurazione. Altri 1.139 eventi utilizzavano gadget chain basate su serialized object di Laravel, mentre 2.534 impiegavano altri payload basati su serialized object che coinvolgevano Monolog, Symfony, Guzzle, WordPress, ThinkPHP e altre classi installate. Un serialized object racchiude i dati dell'applicazione in un formato che PHP può ricostruire; una gadget chain combina funzioni applicative esistenti per produrre un'azione non prevista, come l'esecuzione di comandi.

Lo stesso campione includeva 512 tentativi NxSP correlati volti ad avvelenare un file temporaneo di sessione e combinarlo con una vulnerabilità separata di local file inclusion, che consente a un'applicazione di caricare un file locale non previsto. Altri 30 eventi erano canary di upload PHP out-of-band, payload di test progettati per attivare una callback verso un servizio esterno qualora un'altra tecnica di caricamento o esecuzione funzionasse. Le categorie possono sovrapporsi perché i totali relativi ai serialized object descrivono le caratteristiche dei payload. Il dataset contiene richieste, non risposte del server o record degli endpoint, quindi misura i tentativi di exploit anziché le compromissioni riuscite.

L'attribuzione resta importante. Wordfence afferma che il traffico P2S e quello basato su serialized object sono coerenti con tentativi di sfruttare il comportamento corretto dagli aggiornamenti PHP. Il session poisoning NxSP e gli upload canary utilizzano la stessa area di multipart o upload progress, ma richiedono vulnerabilità separate o specifici comportamenti dell'applicazione. Non possono quindi essere considerati exploit confermati di CVE-2026-109618 o CVE-2026-109619.

I comandi osservati tentano di confermare l'esecuzione tramite P2S_OK, NxSP seguito da numeri oppure SHL_OK; profilare i server mediante id, uname -a e hostname; e sottrarre dati segreti dalle variabili d'ambiente, da .env e da wp-config.php. Altri payload cercano nelle directory comuni dei content management system e tentano di collocare una PHP command shell persistente denominata wp2s.php nelle cartelle scrivibili di upload, plugin o theme. Alcuni tentano di scaricare ed eseguire un second-stage payload tramite curl, wget e un command interpreter. Altri utilizzano hostname univoci presso oast.pro, oast.fun e oast.online per una verifica out-of-band, il che significa che la conferma arriva tramite una connessione di rete separata.

Gli indicatori che i responsabili della difesa possono cercare includono P2S_OK, NxSP[0-9]+, SHL_OK, ADV618BOUNDARY, ----P2SB, wp2s.php, php2shell.php e axiom_*.php. I nomi di oggetti rilevati nei payload includono Illuminate\Broadcasting\PendingBroadcast, Monolog\Handler\BufferHandler e Requests_Utility_FilteredIterator.

I 20 indirizzi sorgente più attivi e i rispettivi numeri di tentativi bloccati erano 87.121.84.174 (8.525), 181.215.186.252 (7.856), 185.196.220.132 (7.146), 185.161.210.29 (5.796), 152.233.51.69 (5.317), 45.134.225.16 (3.623), 107.189.14.87 (2.365), 193.47.62.24 (2.263), 2409:40d2:204e:4be:2a1f:f9c9:a055:e00b (1.953), 103.147.220.17 (1.860), 143.246.223.124 (1.791), 52.74.54.75 (1.260), 65.49.200.56 (836), 193.142.147.111 (775), 85.137.56.188 (672), 85.137.53.26 (664), 167.254.242.130 (648), 217.112.152.168 (619), 203.78.119.133 (616) e 140.245.32.169 (616).

La riuscita dell'exploit dipende ancora dalla configurazione PHP, dal Server Application Programming Interface (SAPI), che collega PHP al web server, dalle estensioni caricate, dalle classi applicative disponibili e dallo stato dei singoli PHP worker. In un laboratorio Apache con una configurazione speciale di PHP 8.5.11, Wordfence ha confermato l'esecuzione di codice durante i test di CVE-2026-109619. Lo stesso proof of concept causava invece il crash di una build PHP 8.5.11 normalmente ottimizzata, mentre PHP 8.5.12 rimaneva stabile. Per CVE-2026-109618, Wordfence ha riprodotto un comportamento diverso tra le release vulnerabili e quelle corrette, ma non ha ottenuto in modo indipendente l'esecuzione di codice.

La conferma di una compromissione reale richiederebbe prove ricavate dalle risposte, dai file, dai processi in esecuzione, dai crash dei PHP worker, dai lookup del Domain Name System (DNS) o dalle connessioni web in uscita sul server preso di mira. Parte di questa attività può avvenire al di fuori di WordPress e dei suoi log, limitando ciò che il monitoraggio a livello di WordPress può accertare. Wordfence chiede a chiunque disponga di artifact pertinenti di inviarli a [email protected]; i clienti Care e Response possono contattare il suo team di incident response, mentre Wordfence Response dichiara una disponibilità 24/7/365 con un tempo di risposta di un'ora.

Per i proprietari di siti che preferiscono un ambiente gestito, AEU Hosting offre hosting WordPress gestito e protetto end to end.

Disponibile anche in: EnglishDeutschShqip