
Extension Checkmk avec un plug-in d'agent qui inventorie les binaires PHP et Apache mod_php sur les hôtes Linux et signale l'état de PHP2Shell (CVE-2026-109618/109619), les rétroportages et les processus obsolètes.
Une extension Checkmk qui indique, pour chaque installation PHP sur un hôte Linux, si elle est affectée par PHP2Shell - les vulnérabilités d'exécution de code à distance avant authentification CVE-2026-109618 et CVE-2026-109619, divulguées et corrigées le 2026-10-21 dans PHP 8.2.35, 8.3.36, 8.4.27 et 8.5.12.
Elle fournit un petit plug-in d'agent POSIX shell qui ne fait que collecter des faits (binaires PHP, bibliothèques PHP d'Apache mod_php, NGINX Unit et FrankenPHP, versions, journaux de modifications des paquets, paramètres php.ini, processus exécutant encore un binaire remplacé). La décision de savoir si cela signifie « corrigé » ou « vulnérable » est prise par le plug-in de vérification sur le serveur Checkmk, de sorte que de nouvelles informations - une autre version corrigée, une nouvelle CVE - ne nécessitent qu'un .mkp mis à jour, et non un nouveau script sur chaque hôte.
Pourquoi ne pas simplement comparer les numéros de version : les distributions rétroportent le correctif sans changer la version amont. Ubuntu 24.04 fournit PHP 8.3.6 et AlmaLinux 9 fournit 8.0.30 - tous deux corrigés, tous deux « vulnérables » selon la version. L'extension lit donc également le journal de modifications du paquet qui possède chaque binaire.
cmk_addons.plugins)./proc/<pid>/maps de tous les processus). POSIX sh simple avec les outils GNU ou busybox ; les journaux de modifications des paquets sont lus avec dpkg, rpm ou apk. Testé sur la famille Debian (Debian, Ubuntu), la famille Red Hat (RHEL, AlmaLinux, Rocky Linux, Oracle Linux, CentOS Stream, Fedora, Amazon Linux 2023, CentOS 7) et Alpine, voir ci-dessous.| Image Checkmk | Date | Résultat |
|---|---|---|
checkmk/check-mk-ultimate:2.5.0p17 | 2026-10-27 | OK (build, cmk-validate-plugins, smoke test, install + 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, install + discovery + check + agent bake) |
Le plug-in d'agent a été exécuté contre les paquets PHP propres aux distributions le 2026-10-27 (scripts/test_agent_plugin.sh). Lorsqu'une cible démarre les SAPIs web (FPM, Apache mod_php là où la distribution le fournit encore, NGINX Unit, FrankenPHP), le binaire FPM et libphp ont ensuite été remplacés sur le disque, et la détection de redémarrage a signalé les processus en cours d'exécution.
Famille Debian et Alpine
| Distribution | Paquets PHP | Résultat du plug-in |
|---|---|---|
| Ubuntu 24.04 | 8.3.6-0ubuntu0.24.04.13 (CLI, FPM, CGI, mod_php) | corrigé par rétroportage (le journal de modifications nomme les deux CVE) |
| Debian 12 | 8.2.35-1~deb12u1 (CLI, FPM, mod_php) | corrigé par version |
| Debian 12 + nginx | 8.2.35-1~deb12u1 (CLI, FPM derrière nginx) | corrigé par version |
| Debian 13 | 8.4.27-1~deb13u1 (CLI, FPM) | corrigé par version |
| Alpine 3.22 | php83 8.3.36-r0 (CLI, FPM, CGI) | corrigé par version |
Famille Red Hat
| Distribution | Paquets PHP | Résultat du plug-in |
|---|---|---|
| AlmaLinux 8.10 | 7.2.24-1.module_el8.10.0 (CLI, FPM, CGI, mod_php libphp7.so) | corrigé par backport (le changelog mentionne les deux CVE) |
AlmaLinux 8.10, module php:8.2 | 8.2.35-1.module_el8.10.0 (CLI, FPM, CGI) | corrigé par version |
| 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) | corrigé par backport (le changelog mentionne les deux CVE) |
AlmaLinux 9.8, module php:8.3 | 8.3.36-1.module_el9.8.0 (CLI, FPM, CGI) | corrigé par version |
| AlmaLinux 9.8 + Remi SCL | php74 7.4.33-31.el9.remi, php81 8.1.34-6.el9.remi (/opt/remi) | corrigé par backport (le changelog mentionne les deux CVE) |
| AlmaLinux 10.2, CentOS Stream 10 | 8.3.36-1.el10 (CLI, FPM, CGI) | corrigé par version |
| Fedora 44 | 8.5.12-1.fc44 (CLI, FPM, CGI) | corrigé par version |
| Amazon Linux 2023 | php8.5 8.5.12-1.amzn2023.0.1 (CLI, FPM, CGI) | corrigé par version |
| CentOS 7 (fin de vie, vault) | 5.4.16-48.el7 (CLI, FPM, CGI) | vulnérable - pas de backport pour EL7 hors support étendu payant |
Images de conteneurs officielles et FrankenPHP
| Image | PHP | Résultat du plug-in |
|---|---|---|
php:8.2.20-fpm | 8.2.20, compilé depuis les sources | vulnérable |
unit:php8.3 (NGINX Unit) | 8.3.26 (CLI, CGI, libphp embarqué) | vulnérable |
dunglas/frankenphp:latest | 8.5.12 (CLI, CGI, libphp embarqué) | corrigé par version |
| Binaire statique FrankenPHP (release GitHub) | 8.5.12 | corrigé par version |
Il n'a pas encore été exécuté sur un hôte de production hors conteneurs - en particulier pas avec SELinux en mode enforcing (famille RHEL) ; l'agent s'exécute normalement en mode non confiné dans ce cas.
Téléchargez le .mkp depuis une release (ou compilez-le vous-même, voir
Développement).
Setup > Maintenance > Extension packages > Upload package, ou en ligne de commande à l'intérieur du site :
mkp add php2shell-<version>.mkp
mkp enable php2shell <version>
Déployez le plug-in d'agent sur les hôtes que vous souhaitez vérifier :
Lancez une découverte de services sur les hôtes. Chaque binaire PHP et module PHP Apache obtient son
propre service, plus un service PHP2Shell restart par hôte.
Facultatif : ajustez les états dans Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) et PHP2Shell restart.
Copiez package/agents/plugins/php2shell dans un sous-répertoire d'intervalle de cache du répertoire
de plug-ins de l'agent et rendez-le exécutable :
install -m 755 php2shell /usr/lib/check_mk_agent/plugins/3600/php2shell
Le répertoire 3600 fait exécuter l'agent en arrière-plan une fois par heure et sert le résultat mis en cache entre-temps. Ne le placez pas directement dans plugins/ : il exécute chaque binaire PHP et lit la carte mémoire de chaque processus, ce qui est trop lourd pour chaque requête de l'agent.
| Service | Un par | États (par défaut, configurables) |
|---|---|---|
PHP2Shell <path> | binaire ou bibliothèque PHP, par ex. PHP2Shell /usr/sbin/php-fpm8.3 | OK corrigé - CRIT SAPI web vulnérable - WARN SAPI web vulnérable avec toutes les mesures d'atténuation intermédiaires - WARN CLI vulnérable - UNKNOWN version indéterminable |
PHP2Shell restart | hôte avec PHP | OK - CRIT des processus exécutent encore un binaire PHP ou libphp remplacé |