
Extensão do Checkmk com um plug-in de agente que inventaria binários PHP e Apache mod_php em hosts Linux e reporta o estado do PHP2Shell (CVE-2026-109618/109619), backports e processos obsoletos.
Uma extensão do Checkmk que mostra, para cada instalação de PHP em um host Linux, se ela é afetada pelo PHP2Shell - as vulnerabilidades de execução remota de código pré-autenticação CVE-2026-109618 e CVE-2026-109619, divulgadas e corrigidas em 2026-10-21 no PHP 8.2.35, 8.3.36, 8.4.27 e 8.5.12.
Ela inclui um pequeno plug-in de agente em shell POSIX que apenas coleta fatos (binários PHP, bibliotecas PHP do Apache mod_php, NGINX Unit e FrankenPHP, versões, changelogs de pacotes, configurações do php.ini, processos ainda em execução de um binário substituído). Se isso significa "corrigido" ou "vulnerável" é decidido pelo plug-in de verificação no servidor Checkmk, de modo que novas informações - outra versão corrigida, uma nova CVE - precisam apenas de um .mkp atualizado, não de um novo script em cada host.
Por que não apenas comparar números de versão: as distribuições fazem backport da correção sem alterar a versão upstream. O Ubuntu 24.04 traz PHP 8.3.6 e o AlmaLinux 9 traz 8.0.30 - ambos corrigidos, ambos "vulneráveis" pela versão. A extensão, portanto, também lê o changelog do pacote ao qual cada binário pertence.
cmk_addons.plugins)./proc/<pid>/maps de todos os processos). sh POSIX simples com ferramentas GNU ou busybox; os changelogs dos pacotes são lidos com dpkg, rpm ou apk. Testado na família Debian (Debian, Ubuntu), na família Red Hat (RHEL, AlmaLinux, Rocky Linux, Oracle Linux, CentOS Stream, Fedora, Amazon Linux 2023, CentOS 7) e Alpine, veja abaixo.| Imagem Checkmk | Data | Resultado |
|---|---|---|
checkmk/check-mk-ultimate:2.5.0p17 | 2026-10-27 | OK (build, cmk-validate-plugins, smoke test, instalação + descoberta + verificação + agent bake) |
checkmk/check-mk-ultimate:3.0.0-2026.10.27 (diária) | 2026-10-27 | OK (build, cmk-validate-plugins, smoke test, instalação + descoberta + verificação + agent bake) |
O plug-in de agente foi executado com os pacotes PHP das próprias distribuições em 2026-10-27 (scripts/test_agent_plugin.sh). Onde um alvo inicia as SAPIs web (FPM, Apache mod_php onde a distribuição ainda o fornece, NGINX Unit, FrankenPHP), o binário FPM e o libphp foram substituídos em disco depois, e a detecção de reinício reportou os processos em execução.
Família Debian e Alpine
| Distribuição | Pacotes PHP | Resultado do plug-in |
|---|---|---|
| Ubuntu 24.04 | 8.3.6-0ubuntu0.24.04.13 (CLI, FPM, CGI, mod_php) | corrigido por backport (o changelog nomeia ambas as CVEs) |
| Debian 12 | 8.2.35-1~deb12u1 (CLI, FPM, mod_php) | corrigido por versão |
| Debian 12 + nginx | 8.2.35-1~deb12u1 (CLI, FPM atrás do nginx) | corrigido por versão |
| Debian 13 | 8.4.27-1~deb13u1 (CLI, FPM) | corrigido por versão |
| Alpine 3.22 | php83 8.3.36-r0 (CLI, FPM, CGI) | corrigido por versão |
Família Red Hat
| Distribuição | Pacotes PHP | Resultado do plug-in |
|---|---|---|
| AlmaLinux 8.10 | 7.2.24-1.module_el8.10.0 (CLI, FPM, CGI, mod_php libphp7.so) | corrigido por backport (o changelog nomeia ambas as CVEs) |
AlmaLinux 8.10, módulo php:8.2 | 8.2.35-1.module_el8.10.0 (CLI, FPM, CGI) | corrigido por versão |
| 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) | corrigido por backport (o changelog nomeia ambas as CVEs) |
AlmaLinux 9.8, módulo php:8.3 | 8.3.36-1.module_el9.8.0 (CLI, FPM, CGI) | corrigido por versão |
| AlmaLinux 9.8 + Remi SCL | php74 7.4.33-31.el9.remi, php81 8.1.34-6.el9.remi (/opt/remi) | corrigido por backport (o changelog nomeia ambas as CVEs) |
| AlmaLinux 10.2, CentOS Stream 10 | 8.3.36-1.el10 (CLI, FPM, CGI) | corrigido por versão |
| Fedora 44 | 8.5.12-1.fc44 (CLI, FPM, CGI) | corrigido por versão |
| Amazon Linux 2023 | php8.5 8.5.12-1.amzn2023.0.1 (CLI, FPM, CGI) | corrigido por versão |
| CentOS 7 (fim de vida, vault) | 5.4.16-48.el7 (CLI, FPM, CGI) | vulnerável - sem backport para EL7 fora do suporte estendido pago |
Imagens de contêiner oficiais e FrankenPHP
| Imagem | PHP | Resultado do plug-in |
|---|---|---|
php:8.2.20-fpm | 8.2.20, compilado a partir do código-fonte | vulnerável |
unit:php8.3 (NGINX Unit) | 8.3.26 (CLI, CGI, libphp incorporada) | vulnerável |
dunglas/frankenphp:latest | 8.5.12 (CLI, CGI, libphp incorporada) | corrigido por versão |
| Binário estático do FrankenPHP (release do GitHub) | 8.5.12 | corrigido por versão |
Ainda não foi executado num host de produção fora de contêineres - em particular não com SELinux em modo enforcing (família RHEL); o agente normalmente é executado sem confinamento nesse ambiente.
Baixe o .mkp a partir de uma release (ou compile-o você mesmo, consulte
Desenvolvimento).
Setup > Maintenance > Extension packages > Upload package, ou na linha de comando dentro do site:
mkp add php2shell-<version>.mkp
mkp enable php2shell <version>
Implante o plug-in do agente nos hosts que deseja verificar:
Execute uma descoberta de serviços nos hosts. Cada binário PHP e módulo PHP do Apache recebe seu
próprio serviço, além de um serviço PHP2Shell restart por host.
Opcional: ajuste os estados em Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) e PHP2Shell restart.
Copie package/agents/plugins/php2shell para um subdiretório de intervalo de cache do diretório
de plug-ins do agente e torne-o executável:
install -m 755 php2shell /usr/lib/check_mk_agent/plugins/3600/php2shell
O diretório 3600 faz com que o agente o execute em segundo plano uma vez por hora e sirva o
resultado em cache nesse intervalo. Não o coloque diretamente em plugins/: ele executa todos os binários PHP
e lê o mapa de memória de cada processo, o que é demais para cada consulta do agente.
| Serviço | Um por | Estados (padrão, configurável) |
|---|---|---|
PHP2Shell <path> | binário ou biblioteca PHP, por exemplo PHP2Shell /usr/sbin/php-fpm8.3 | OK corrigido - CRIT SAPI web vulnerável - WARN SAPI web vulnerável com todas as mitigações provisórias - WARN CLI vulnerável - UNKNOWN versão não determinável |
PHP2Shell restart | host com PHP | OK - CRIT processos ainda executam um binário PHP ou libphp substituído |