Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
checkmk_php2shell — Linuxホスト上のPHPバイナリとApache mod_phpをインベントリし、PHP2Shell(CVE-2026-109618/109619)のステータス、バックポート、および古いプロセスを報告するエージェントプラグインを備えたCheckmk拡張機能です。 | Kitploit
ツール/GitLabGitLab/checkmk1/checkmk_php2shell
防御ツール脆弱性スキャナー脆弱性分析構成監査ウェブセキュリティインシデントレスポンス
GitLabcheckmk1/checkmk_php2shell

checkmk_php2shell

Linuxホスト上のPHPバイナリとApache mod_phpをインベントリし、PHP2Shell(CVE-2026-109618/109619)のステータス、バックポート、および古いプロセスを報告するエージェントプラグインを備えたCheckmk拡張機能です。

リポジトリを見る
26時間21分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

checkmk_php2shell

Linux ホスト上のすべての PHP インストールについて、PHP2Shell の影響を受けているかどうかを表示する Checkmk 拡張機能です。PHP2Shell とは、認証前のリモートコード実行を可能にする脆弱性 CVE-2026-109618 および CVE-2026-109619 のことで、2026-10-21 に公開され、PHP 8.2.35、8.3.36、8.4.27、8.5.12 で修正されました。

この拡張機能には、事実のみを収集する小さな POSIX シェルエージェントプラグインが含まれています(PHP バイナリ、Apache mod_php・NGINX Unit・FrankenPHP の PHP ライブラリ、バージョン、パッケージの changelog、php.ini の設定、置き換えられたバイナリで稼働し続けているプロセス)。それが「修正済み」なのか「脆弱」なのかは、Checkmk サーバー上のチェックプラグインが判断します。そのため、新しい情報(別の修正リリース、新しい CVE)が追加されても、更新された .mkp が必要なだけで、各ホストに新しいスクリプトを配布する必要はありません。

単にバージョン番号を比較しない理由: ディストリビューションは上流のバージョンを変えずに修正をバックポートします。Ubuntu 24.04 は PHP 8.3.6 を、AlmaLinux 9 は 8.0.30 を提供していますが、どちらも修正済みでありながら、バージョンだけを見ると「脆弱」と判定されます。そのため、この拡張機能は各バイナリを所有するパッケージの changelog も読み取ります。

要件

  • Checkmk >= 2.5.0(現在の cmk_addons.plugins プラグイン API を使用)。
  • 監視対象ホスト: Checkmk エージェントが root で実行されている Linux(プラグインは PHP バイナリを実行し、すべてのプロセスの /proc/<pid>/maps を読み取ります)。GNU または busybox ツールを備えた素の POSIX sh。パッケージの changelog は dpkg、rpm、apk で読み取ります。Debian 系(Debian、Ubuntu)、Red Hat 系(RHEL、AlmaLinux、Rocky Linux、Oracle Linux、CentOS Stream、Fedora、Amazon Linux 2023、CentOS 7)、および Alpine でテスト済みです(下記参照)。
  • エージェントベイカリーによるデプロイには商用の Checkmk エディション(Pro、Ultimate、またはマルチテナンシー付き Ultimate)が必要です。Community エディションでは、エージェントプラグインを手動でホストにコピーしてください(エージェントプラグインの手動デプロイ を参照)。チェックプラグイン、ルール、サービスはどちらの場合も同じように動作します。

テスト済み環境

Checkmk イメージ日付結果
checkmk/check-mk-ultimate:2.5.0p172026-10-27OK(ビルド、cmk-validate-plugins、スモークテスト、インストール + ディスカバリ + チェック + エージェントベイク)
checkmk/check-mk-ultimate:3.0.0-2026.10.27(デイリー)2026-10-27OK(ビルド、cmk-validate-plugins、スモークテスト、インストール + ディスカバリ + チェック + エージェントベイク)

エージェントプラグインは、2026-10-27 に各ディストリビューション独自の PHP パッケージに対して実行されました(scripts/test_agent_plugin.sh)。対象が Web SAPI(FPM、ディストリビューションがまだ提供している場合は Apache mod_php、NGINX Unit、FrankenPHP)を起動する場合、その後ディスク上の FPM バイナリと libphp が置き換えられ、再起動検出が稼働中のプロセスを報告しました。

Debian 系および Alpine

ディストリビューションPHP パッケージプラグインの結果
Ubuntu 24.048.3.6-0ubuntu0.24.04.13(CLI、FPM、CGI、mod_php)バックポートにより修正済み(changelog に両方の CVE が記載)
Debian 128.2.35-1~deb12u1(CLI、FPM、mod_php)バージョンにより修正済み
Debian 12 + nginx8.2.35-1~deb12u1(CLI、nginx 背後の FPM)バージョンにより修正済み
Debian 138.4.27-1~deb13u1(CLI、FPM)バージョンにより修正済み
Alpine 3.22php83 8.3.36-r0(CLI、FPM、CGI)バージョンにより修正済み

Red Hat 系

ディストリビューションPHP パッケージプラグインの結果
AlmaLinux 8.107.2.24-1.module_el8.10.0 (CLI、FPM、CGI、mod_php libphp7.so)バックポートにより修正済み (changelog に両方の CVE が記載)
AlmaLinux 8.10、モジュール php:8.28.2.35-1.module_el8.10.0 (CLI、FPM、CGI)バージョンにより修正済み
RHEL 9.8 (UBI)、AlmaLinux 9.8、Rocky Linux 9.8、Oracle Linux 9.88.0.30-8.el9_8.1 (CLI、FPM、CGI)バックポートにより修正済み (changelog に両方の CVE が記載)
AlmaLinux 9.8、モジュール php:8.38.3.36-1.module_el9.8.0 (CLI、FPM、CGI)バージョンにより修正済み
AlmaLinux 9.8 + Remi SCLphp74 7.4.33-31.el9.remi、php81 8.1.34-6.el9.remi (/opt/remi)バックポートにより修正済み (changelog に両方の CVE が記載)
AlmaLinux 10.2、CentOS Stream 108.3.36-1.el10 (CLI、FPM、CGI)バージョンにより修正済み
Fedora 448.5.12-1.fc44 (CLI、FPM、CGI)バージョンにより修正済み
Amazon Linux 2023php8.5 8.5.12-1.amzn2023.0.1 (CLI、FPM、CGI)バージョンにより修正済み
CentOS 7 (サポート終了、vault)5.4.16-48.el7 (CLI、FPM、CGI)脆弱 - 有償の延長サポート以外では EL7 向けのバックポートなし

公式コンテナイメージと FrankenPHP

イメージPHPプラグインの結果
php:8.2.20-fpm8.2.20、ソースからビルド脆弱
unit:php8.3 (NGINX Unit)8.3.26 (CLI、CGI、組み込み libphp)脆弱
dunglas/frankenphp:latest8.5.12 (CLI、CGI、組み込み libphp)バージョンにより修正済み
FrankenPHP 静的バイナリ (GitHub リリース)8.5.12バージョンにより修正済み

コンテナ外の本番ホストではまだ実行されていません。特に SELinux が enforcing の環境 (RHEL 系) では未検証です。通常、エージェントはそこでは unconfined で動作します。

インストール

  1. リリース から .mkp をダウンロードします (または自分でビルドします。詳しくは 開発 を参照してください)。

  2. Setup > Maintenance > Extension packages > Upload package、またはサイト内のコマンドラインで:

    mkp add php2shell-<version>.mkp
    mkp enable php2shell <version>
    
  3. チェック対象のホストにエージェントプラグインをデプロイします:

    • 商用版: Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules の Agent plug-ins セクションで、ルール PHP2Shell agent plug-in を選択します。対象ホスト用のルールを作成し、エージェントをベイクして更新します。プラグインは常に非同期で実行され、デフォルトの間隔は1時間です。
    • コミュニティ版 / 手動: 以下を参照してください。
  4. ホスト上でサービスディスカバリを実行します。各 PHP バイナリと Apache PHP モジュールがそれぞれ独自のサービスとなり、さらにホストごとに1つの PHP2Shell restart サービスが追加されます。

  5. 任意: Setup > Services > Service monitoring rules > PHP2Shell (CVE-2026-109618 / CVE-2026-109619) および PHP2Shell restart で状態を調整します。

手動でのエージェントプラグインのデプロイ (コミュニティ版)

package/agents/plugins/php2shell をエージェントのプラグインディレクトリ内のキャッシュ間隔サブディレクトリにコピーし、実行可能にします:

install -m 755 php2shell /usr/lib/check_mk_agent/plugins/3600/php2shell

3600 ディレクトリは、エージェントに1時間に1回バックグラウンドで実行させ、その間はキャッシュされた結果を提供させます。これを直接 plugins/ に置かないでください。すべての PHP バイナリを実行し、すべてのプロセスのメモリマップを読み取るため、エージェントのクエリごとには負荷が大きすぎます。

監視対象

サービス単位状態(デフォルト、設定可能)
PHP2Shell <path>PHP バイナリまたはライブラリ、例: PHP2Shell /usr/sbin/php-fpm8.3OK 修正済み - CRIT 脆弱な web SAPI - WARN すべての中間緩和策を適用した脆弱な web SAPI - WARN 脆弱な CLI - UNKNOWN バージョンを特定できない
PHP2Shell restartPHP を搭載したホストOK - CRIT プロセスが置き換えられた PHP バイナリまたは libphp を依然として実行中
flowchart TD
    A[PHP binary or module] --> B{Version known?}
    B -- no --> U[UNKNOWN]
    B -- yes --> C{"Version >= fix of its branch?<br/>8.2.35 / 8.3.36 / 8.4.27 / 8.5.12<br/>or branch newer than 8.5"}
    C -- yes --> OK[OK: fixed]
    C -- no --> D{"Package changelog names<br/>both CVEs?"}
    D -- yes --> OKB[OK: fixed by distribution backport]
    D -- no --> E{SAPI}
    E -- CLI --> W1[WARN: vulnerable, CLI only]
    E -- "FPM / CGI / LiteSpeed / Apache module /<br/>embedded libphp / FrankenPHP" --> F{"All interim mitigations<br/>in this SAPI's php.ini?"}
    F -- yes --> W2[WARN: vulnerable, mitigated]
    F -- no --> CR[CRIT: vulnerable]
    OK --> G{"session.upload_progress.enabled<br/>= On?"}
    OKB --> G
    G -- yes --> H["Hint: CVE-2026-115560 not fixed yet<br/>(state configurable, default OK)"]
  • Fixed とは、少なくともそのブランチの上流修正、または 両方 の CVE ID を明記したパッケージの changelog を指します。8.2 より古いブランチ(PHP 5 と 7 のすべてを含む)には上流リリースがなく、ベンダーのバックポート(Debian ELTS、RHEL、Remi、Ubuntu Pro など)によってのみ修正され、この changelog チェックはそれを認識します。
  • 暫定緩和策 とは PHP が公開したもので、CVE-2026-109618 に対しては memory_limit=-1、CVE-2026-109619 に対しては session.upload_progress.enabled=0(および PHP 8.5 では fatal_error_backtraces=0)です。これらは CRIT を WARN に下げるだけで、OK には決してなりません。PHP はアップデートのみを完全な修正と呼んでおり、memory_limit=-1 はそれ自体でメモリ枯渇を招きます。
  • CLI バイナリは CRIT ではなく WARN です。両方の CVE は PHP SAPI への HTTP リクエストを必要とします。それでも CLI バイナリが報告されるのは、php -S がそれを Web サーバーとして使用するためであり、また mod_php が見つからないホストでは PHP バージョンの唯一の痕跡となり得るためです。
  • CVE-2026-115560(2026-10-23 公開、修正未リリース)は別のセッションアップロード進捗に関する問題です。修正済みのインストールで session.upload_progress.enabled=On の場合、詳細にヒントが表示されます。アラートを出したい場合はルール内で状態を引き上げてください。
  • サービスの出力は常に次のステップを示します。更新すべきブランチのパッチリリース、またはそのブランチには上流の修正がないことです。

仕組み

flowchart LR
    subgraph host [Monitored Linux host]
        P["agent plug-in php2shell<br/>(plugins/3600/, as root)"]
        P -- "php -v / php -i" --> BIN[PHP binaries]
        P -- "X-Powered-By string" --> SO[libphp*.so]
        P -- "dpkg / rpm / apk" --> CL[package changelog]
        P -- "/proc/*/maps" --> PR[running processes]
    end
    P -- "php2shell agent section" --> CP
    subgraph site [Checkmk site]
        CP["check plug-ins<br/>php2shell, php2shell_restart"]
        R[rules: service states] --> CP
        BK["bakery rule<br/>PHP2Shell agent plug-in"]
    end
    BK -. bakes into agent .-> P
    CP --> S1["PHP2Shell (one per path)"]
    CP --> S2[PHP2Shell restart]

エージェントプラグインは次のことを行います:

ツールをダウンロード