
Estensione Checkmk con un plug-in agent che inventaria i binari PHP e Apache mod_php sugli host Linux e riporta lo stato di PHP2Shell (CVE-2026-109618/109619), i backport e i processi obsoleti.
Un'estensione per Checkmk che mostra, per ogni installazione PHP su un host Linux, se è interessata da PHP2Shell - le vulnerabilità di esecuzione di codice remoto pre-autenticazione CVE-2026-109618 e CVE-2026-109619, divulgate e corrette il 2026-10-21 in PHP 8.2.35, 8.3.36, 8.4.27 e 8.5.12.
Include un piccolo plug-in agente in shell POSIX che si limita a raccogliere informazioni (binari PHP, librerie PHP di Apache mod_php, NGINX Unit e FrankenPHP, versioni, changelog dei pacchetti, impostazioni di php.ini, processi che eseguono ancora un binario sostituito). Se ciò significhi "corretto" o "vulnerabile" viene deciso dal plug-in di check sul server Checkmk, così nuove informazioni - un'altra release corretta, una nuova CVE - richiedono solo un .mkp aggiornato, non un nuovo script su ogni host.
Perché non confrontare semplicemente i numeri di versione: le distribuzioni applicano la correzione tramite backport senza modificare la versione upstream. Ubuntu 24.04 distribuisce PHP 8.3.6 e AlmaLinux 9 distribuisce 8.0.30 - entrambe corrette, entrambe "vulnerabili" in base alla versione. L'estensione legge quindi anche il changelog del pacchetto a cui appartiene ciascun binario.
cmk_addons.plugins)./proc/<pid>/maps di tutti i processi). Shell POSIX sh semplice con strumenti GNU o busybox; i changelog dei pacchetti vengono letti con dpkg, rpm o apk. Testato sulla famiglia Debian (Debian, Ubuntu), sulla famiglia Red Hat (RHEL, AlmaLinux, Rocky Linux, Oracle Linux, CentOS Stream, Fedora, Amazon Linux 2023, CentOS 7) e su Alpine, vedi sotto.| Immagine Checkmk | Data | Risultato |
|---|---|---|
checkmk/check-mk-ultimate:2.5.0p17 | 2026-10-27 | OK (build, cmk-validate-plugins, smoke test, installazione + discovery + check + agent bake) |
checkmk/check-mk-ultimate:3.0.0-2026.10.27 (daily) | 2026-10-27 | OK (build, cmk-validate-plugins, smoke test, installazione + discovery + check + agent bake) |
Il plug-in agente è stato eseguito sui pacchetti PHP delle distribuzioni stesse il 2026-10-27 (scripts/test_agent_plugin.sh). Dove un target avvia le SAPI web (FPM, Apache mod_php dove la distribuzione lo distribuisce ancora, NGINX Unit, FrankenPHP), il binario FPM e libphp sono stati successivamente sostituiti su disco, e il rilevamento del riavvio ha segnalato i processi in esecuzione.
Famiglia Debian e Alpine
| Distribuzione | Pacchetti PHP | Risultato del plug-in |
|---|---|---|
| Ubuntu 24.04 | 8.3.6-0ubuntu0.24.04.13 (CLI, FPM, CGI, mod_php) | corretto tramite backport (il changelog cita entrambe le CVE) |
| Debian 12 | 8.2.35-1~deb12u1 (CLI, FPM, mod_php) | corretto per versione |
| Debian 12 + nginx | 8.2.35-1~deb12u1 (CLI, FPM dietro nginx) | corretto per versione |
| Debian 13 | 8.4.27-1~deb13u1 (CLI, FPM) | corretto per versione |
| Alpine 3.22 | php83 8.3.36-r0 (CLI, FPM, CGI) | corretto per versione |
Famiglia Red Hat
| Distribuzione | Pacchetti PHP | Esito del plug-in |
|---|---|---|
| AlmaLinux 8.10 | 7.2.24-1.module_el8.10.0 (CLI, FPM, CGI, mod_php libphp7.so) | corretto tramite backport (il changelog cita entrambe le CVE) |
AlmaLinux 8.10, modulo php:8.2 | 8.2.35-1.module_el8.10.0 (CLI, FPM, CGI) | corretto tramite versione |
| RHEL 9.8 (UBI), AlmaLinux 9.8, Rocky Linux 9.8, Oracle Linux 9.8 | 8.0.30-8.el9_8.1 (CLI, FPM, CGI) | corretto tramite backport (il changelog cita entrambe le CVE) |
AlmaLinux 9.8, modulo php:8.3 | 8.3.36-1.module_el9.8.0 (CLI, FPM, CGI) | corretto tramite versione |
| AlmaLinux 9.8 + Remi SCL | php74 7.4.33-31.el9.remi, php81 8.1.34-6.el9.remi (/opt/remi) | corretto tramite backport (il changelog cita entrambe le CVE) |
| AlmaLinux 10.2, CentOS Stream 10 | 8.3.36-1.el10 (CLI, FPM, CGI) | corretto tramite versione |
| Fedora 44 | 8.5.12-1.fc44 (CLI, FPM, CGI) | corretto tramite versione |
| Amazon Linux 2023 | php8.5 8.5.12-1.amzn2023.0.1 (CLI, FPM, CGI) | corretto tramite versione |
| CentOS 7 (fine del ciclo di vita, vault) | 5.4.16-48.el7 (CLI, FPM, CGI) | vulnerabile - nessun backport per EL7 al di fuori del supporto esteso a pagamento |
Immagini container ufficiali e FrankenPHP
| Immagine | PHP | Esito del plug-in |
|---|---|---|
php:8.2.20-fpm | 8.2.20, compilato dai sorgenti | vulnerabile |
unit:php8.3 (NGINX Unit) | 8.3.26 (CLI, CGI, libphp incorporato) | vulnerabile |
dunglas/frankenphp:latest | 8.5.12 (CLI, CGI, libphp incorporato) | corretto tramite versione |
| Binario statico FrankenPHP (release GitHub) | 8.5.12 | corretto tramite versione |
Non è ancora stato eseguito su un host di produzione al di fuori dei container - in particolare non con SELinux in modalità enforcing (famiglia RHEL); l'agente normalmente viene eseguito in modalità unconfined in quel contesto.
Scarica il file .mkp da una release (oppure compilalo tu stesso, vedi
Sviluppo).
Setup > Maintenance > Extension packages > Upload package, oppure dalla riga di comando all'interno del sito:
mkp add php2shell-<version>.mkp
mkp enable php2shell <version>
Distribuisci il plug-in dell'agente sugli host che vuoi controllare:
Esegui un service discovery sugli host. Ogni binario PHP e modulo PHP di Apache ottiene il
proprio servizio, più un servizio PHP2Shell restart per host.
Facoltativo: regola gli stati in Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) e PHP2Shell restart.
Copia package/agents/plugins/php2shell in una sottodirectory cache-interval della directory
dei plug-in dell'agente e rendilo eseguibile:
install -m 755 php2shell /usr/lib/check_mk_agent/plugins/3600/php2shell
La directory 3600 fa sì che l'agente lo esegua in background una volta all'ora e serva il risultato in cache nel frattempo. Non inserirlo direttamente in plugins/: esegue ogni binario PHP e legge la mappa di memoria di ogni processo, il che è troppo oneroso per ogni query dell'agente.
| Servizio | Uno per | Stati (predefiniti, configurabili) |
|---|---|---|
PHP2Shell <path> | binario o libreria PHP, ad es. PHP2Shell /usr/sbin/php-fpm8.3 | OK corretto - CRIT web SAPI vulnerabile - WARN web SAPI vulnerabile con tutte le mitigazioni intermedie - WARN CLI vulnerabile - UNKNOWN versione non determinabile |
PHP2Shell restart | host con PHP | OK - CRIT i processi eseguono ancora un binario PHP o libphp sostituito |