Che cos’è il php2shell-checker di OpenAI?
php2shell-checker è uno strumento open source che OpenAI ha pubblicato il 21 ottobre 2026, con licenza Apache 2.0, in concomitanza con la divulgazione coordinata di PHP2Shell (CVE-2026-109618 e CVE-2026-109619). È un breve script Node.js con due modalità:
- Modalità URL: invia una richiesta HEAD a un sito e cerca una versione di PHP negli header
X-Powered-ByeServer. Ripiega su GET solo se la HEAD viene rifiutata, non segue i redirect e non legge la pagina. - Modalità locale: esegue
php -vsulla macchina e legge la versione.
Poi confronta la versione con una tabella interna dell’ultima release vulnerabile di ogni ramo, da 5.4 a 8.5. Non invia traffico d’attacco: le istruzioni di OpenAI dicono esplicitamente di non eseguire sonde di exploit.
Come eseguo il checker di OpenAI?
Ti servono Node.js e una copia del repository da GitHub. Dalla cartella del repository:
- Sul tuo server, per controllare il PHP da riga di comando:
node phpcheck.js --local - Sul tuo sito web:
node phpcheck.js "https://your-site.example" - Per un output leggibile da programmi, aggiungi
--json.
Usa la modalità URL solo su siti che possiedi o gestisci. Il PHP da riga di comando controllato da --local può essere diverso da quello che serve il sito, quindi verifica anche cosa riporta il sito stesso, per esempio in WordPress da Strumenti → Salute del sito → Info → Server.
Cosa significano OK, VULNERABLE e UNKNOWN?
| Risultato | Exit code | Cosa intende lo strumento | Cosa fare |
|---|---|---|---|
OK | 0 | La versione è superiore all’ultima release vulnerabile del suo ramo | Verifica che sia la versione che il sito esegue e che PHP sia stato riavviato |
VULNERABLE | 1 | La versione è uguale o inferiore all’ultima release vulnerabile | Aggiorna PHP, a meno che il tuo fornitore non abbia fatto il backport della correzione (vedi sotto) |
UNKNOWN | 3 | Nessuna versione trovata, ramo non in elenco o versione pre-release | Controlla la versione nel pannello di controllo o sul server |
UNKNOWN non significa che il sito sia al sicuro. La maggior parte dei server ben configurati nasconde la versione di PHP negli header, quindi la modalità URL restituisce spesso UNKNOWN.
Dove può sbagliare il checker di OpenAI?
Confronta solo i numeri di versione, e OpenAI lo dice chiaramente: un OK non verifica in modo indipendente la presenza di una correzione di sicurezza. Nella pratica contano tre casi:
- Backport delle distribuzioni: Ubuntu, Debian, Red Hat e altri correggono pacchetti PHP con numeri più vecchi. Un
8.3.6-0ubuntu0.24.04.13patchato risulta comunque VULNERABLE. Vedi aggiornare PHP su Ubuntu e Debian. - Numeri di build di pannelli e fornitori: sui rami vecchi, qualsiasi numero sopra la soglia risulta OK, compresi numeri che PHP non ha mai rilasciato. BaoTa (宝塔) e aaPanel distribuiscono build patchate come 7.4.34 e 8.1.35, ma 8.0.27 è sia una build di BaoTa sia una vecchia release non patchata.
- Header: un proxy o una CDN può nascondere o riscrivere
X-Powered-By, e un solo server può ospitare molti siti con versioni di PHP diverse.
Come lo combino con il verificatore PHP2Shell?
Incolla l’output dello strumento direttamente nel campo della versione del verificatore PHP2Shell. Accetta l’output --json, una riga come OK: PHP 8.3.36, l’output di php -v o un header X-Powered-By: PHP/8.3.36, ed estrae la versione. Poi scegli da dove arriva il tuo PHP, per esempio da un pacchetto del sistema operativo, da BaoTa / aaPanel o da un altro pannello di controllo. Così il verificatore può tenere conto dei backport e delle build dei pannelli che un semplice confronto di versioni non vede. Il controllo avviene nel tuo browser e niente di ciò che incolli viene inviato altrove.
Le versioni corrette sono:
| Ramo | Prima versione corretta |
|---|---|
| PHP 8.2 | 8.2.35 |
| PHP 8.3 | 8.3.36 |
| PHP 8.4 | 8.4.27 |
| PHP 8.5 | 8.5.12 |
| 8.1 e precedenti | Nessuna nuova release; patch ufficiali dei sorgenti per 7.4, 8.0 e 8.1 |
Se il risultato dice che sei colpito, segui la guida alla patch PHP2Shell per la tua configurazione. Dopo l’aggiornamento, cerca segni di un’intrusione precedente con la checklist di compromissione.
php2shell.help può fare questo controllo sul mio URL al posto mio?
Sì. Il campo URL del verificatore PHP2Shell legge gli header del tuo sito con la stessa logica, poi valuta la versione con le regole di questo sito. Eseguire lo strumento da te è utile sul server, dove --local legge php -v.
Il checker di OpenAI dice OK. Il mio sito è al sicuro da PHP2Shell?
Non per forza. OK significa solo che la versione dichiarata è superiore all'ultima release vulnerabile del suo ramo; lo strumento non verifica la correzione in sé, e gli header si possono modificare. Verifica la versione che il sito esegue davvero e che tutti i worker PHP siano stati riavviati.
Verifica se il tuo PHP è esposto a PHP2Shell
Inserisci la versione indicata dal tuo sito. La confrontiamo con la prima versione corretta del suo ramo e ti diciamo cosa fare.
Verificatore PHP2Shell →Fonti
I fatti principali di questa pagina (versioni corrette, dettagli dei CVE, pacchetti dei fornitori e avvisi delle agenzie) provengono da fonti ufficiali. Ricerche, notizie e post della community sono indicati come tali.
- php2shell-checker: check a website or local PHP binary for php2shellRicerca OpenAI (GitHub)
- Security advisory: Critical remote code execution vulnerabilities, update nowUfficiale The PHP Group
- RCE via OOM corruptionUfficiale The PHP Group
- RCE via stale global stateUfficiale The PHP Group
- Site Health screenUfficiale WordPress.org