
Verificatore di pacchetti PHP2Shell in sola lettura per Debian 12/13 (CVE-2026-109618, CVE-2026-109619).
Un audit in sola lettura dei pacchetti PHP per Debian 12 (bookworm) e Debian 13 (trixie). Verifica le versioni dei pacchetti rispetto alle correzioni pubblicate per CVE-2026-109618 e CVE-2026-109619, comunemente noti come PHP2Shell.
Censisce i pacchetti core di PHP su tutti i rami installati, inclusi PHP-FPM,
CLI, CGI e Apache mod_php, invece di affidarsi al comando predefinito php -v.
Segnala inoltre i candidati APT, i blocchi dei pacchetti (hold) e i percorsi runtime comuni al di fuori
dei pacchetti valutati.
Questo è un verificatore di versioni dei pacchetti, non un exploit di vulnerabilità né una certificazione che un server sia sicuro. Non installa pacchetti, non modifica la configurazione, non aggiorna gli indici APT, non riavvia servizi, non esegue binari PHP né effettua richieste di rete.
Requisiti: Debian 12 o 13, Python 3.9+ e gli strumenti standard dpkg/APT.
Non ci sono dipendenze Python di terze parti. Il verificatore non richiede i privilegi di root;
i percorsi di scansione inaccessibili vengono segnalati come incompleti.
git clone https://github.com/toxy4ny/php2shell-checker.git
cd php2shell-checker
# Optional, separate operation: refresh available package versions.
sudo apt update
python3 check-php2shell.py
Mirror GitHub: https://github.com/toxy4ny/php2shell-checker
Puoi anche scaricare solo check-php2shell.py, ispezionarlo ed eseguirlo localmente.
Per includere una directory di installazione personalizzata:
python3 check-php2shell.py --scan-root /www/server/php --scan-root /srv/php
La scansione predefinita copre /usr/bin, /usr/sbin, /usr/lib/cgi-bin,
/usr/lib/apache2/modules, /usr/local e /opt. Riconosce i nomi file comuni di
PHP, PHP-FPM, CGI, LiteSpeed PHP, FrankenPHP e moduli Apache. I symlink delle
directory non vengono attraversati; passare esplicitamente le loro directory di
destinazione.
| Stato | Significato |
|---|---|
FIXED | I metadati del pacchetto soddisfano una soglia di rilascio corretta nota. |
UPDATE | Una versione riconoscibile di un pacchetto Debian è inferiore alla sua soglia corretta. |
UNKNOWN | La correzione non può essere verificata automaticamente. Consultare il fornitore del pacchetto. |
I pacchetti di terze parti più vecchi non vengono automaticamente dichiarati vulnerabili: il
loro fornitore potrebbe aver applicato il backport della correzione. Rimangono UNKNOWN finché non viene installato
un rilascio corretto supportato o il backport non viene verificato in modo indipendente. Un epoch o una grande
revisione di packaging da soli non contano mai come correzione upstream. La denominazione delle versioni non è
prova dell'autenticità del repository o dell'integrità del pacchetto.
Output di esempio (illustrativo, non una scansione del tuo host):
[UPDATE] php8.2-fpm installed=8.2.34-1~deb12u1
Debian package version below 8.2.35-1~deb12u1; source=php8.2 (8.2.34-1~deb12u1)
Candidate: 8.2.35-1~deb12u1 [FIXED] — Debian package version >= 8.2.35-1~deb12u1
Se APT offre un candidato corretto più recente, il report stampa un comando di simulazione e un comando di aggiornamento per i pacchetti idonei. Nessuno dei due viene eseguito. I pacchetti bloccati (held) vengono identificati ed esclusi dal comando suggerito. Le dipendenze e i blocchi possono comunque influire sull'intera transazione: rivedere la simulazione prima di procedere.
Codici di uscita:
| Codice | Significato |
|---|---|
0 | Tutti i pacchetti core PHP individuati soddisfano le soglie corrette note, senza ulteriori riscontri sconosciuti nell'ambito analizzato. |
1 | Almeno un pacchetto necessita di un aggiornamento, senza riscontri sconosciuti. |
2 | Riscontri sconosciuti, audit incompleto, nessun pacchetto core PHP trovato, sistema non supportato o errore di esecuzione. Ha precedenza su 1. |
Regole verificate il 2026-10-22. Sono incorporate nello script e non vengono aggiornate automaticamente. Un ramo futuro/non mappato viene segnalato come UNKNOWN.
| Pacchetto o ramo | Soglia corretta |
|---|---|
Pacchetto sorgente Debian 12 php8.2 | 8.2.35-1~deb12u1 |
Pacchetto sorgente Debian 13 php8.4 | 8.4.27-1~deb13u1 |
| PHP 8.2 upstream | 8.2.35 |
| PHP 8.3 upstream | 8.3.36 |
| PHP 8.4 upstream | 8.4.27 |
| PHP 8.5 upstream | 8.5.12 |
Riferimenti principali:
apt update prima di affidarsi al piano di aggiornamento suggerito.FIXED non dimostra che un host non sia mai stato compromesso.python3 -m unittest discover -s tests -v
I test con fixture vengono eseguiti senza Debian. Su Debian, test aggiuntivi utilizzano il reale
dpkg --compare-versions per coprire i confini di release, le prerelease, le epoch e
le revisioni di packaging. La CI esegue i test e un controllo smoke su PHP installato su entrambe
le release Debian, su GitHub e GitLab.
Per modifiche alle regole di versione, includere un advisory del vendor primario e un test di regressione. Si prega di oscurare hostname e percorsi sensibili nei bug report. Non includere credenziali o dump di configurazioni di produzione.
MIT. Copyright (c) 2026 PHP2Shell Checker contributors.