
Debian 12 (bookworm) および Debian 13 (trixie) 向けの読み取り専用 PHP パッケージ監査ツールです。 CVE-2026-109618 および CVE-2026-109619(一般に PHP2Shell と呼ばれる)の公開済み修正に対してパッケージバージョンをチェックします。
デフォルトの php -v コマンドに頼るのではなく、インストールされているブランチ全体にわたって PHP コアパッケージ(PHP-FPM、CLI、CGI、Apache mod_php を含む)をインベントリ化します。
また、APT の候補バージョン、パッケージのホールド、および評価対象パッケージ外の一般的なランタイムパスも報告します。
これはパッケージバージョンのチェッカーであり、脆弱性のエクスプロイトやサーバーが安全であることを保証する証明書ではありません。 パッケージのインストール、設定の変更、APT インデックスの更新、サービスの再起動、PHP バイナリの実行、ネットワークリクエストの送信は行いません。
要件: Debian 12 または 13、Python 3.9 以上、および標準の dpkg/APT ツール。
サードパーティの Python 依存関係はありません。チェッカーの実行に root 権限は不要です。
アクセスできないスキャンパスは不完全として報告されます。
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
GitHub ミラー: https://github.com/toxy4ny/php2shell-checker
check-php2shell.py だけをダウンロードして、内容を確認し、ローカルで実行することもできます。
カスタムのインストールディレクトリを含めるには:
python3 check-php2shell.py --scan-root /www/server/php --scan-root /srv/php
デフォルトのスキャン対象は /usr/bin、/usr/sbin、/usr/lib/cgi-bin、
/usr/lib/apache2/modules、/usr/local、/opt です。一般的な PHP、
PHP-FPM、CGI、LiteSpeed PHP、FrankenPHP、Apache モジュールのファイル名を認識します。ディレクトリの
シンボリックリンクはたどりません。対象ディレクトリを明示的に指定してください。
| ステータス | 意味 |
|---|---|
FIXED | パッケージのメタデータが既知の修正済みリリースのしきい値を満たしています。 |
UPDATE | 認識可能な Debian パッケージのバージョンが修正済みのしきい値を下回っています。 |
UNKNOWN | 修復を自動的に検証できません。パッケージのベンダーに確認してください。 |
古いサードパーティ製パッケージは自動的に脆弱と判定されることはありません。ベンダーが修正を
バックポートしている可能性があります。サポート対象の修正済みリリースがインストールされるか、
バックポートが独立して検証されるまで、これらは UNKNOWN のままです。エポックや大きな
パッケージリビジョンだけでは、上流の修正として決して扱われません。バージョンの命名は
リポジトリの真正性やパッケージの完全性の証明にはなりません。
出力例(例示であり、お使いのホストのスキャン結果ではありません):
[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
APT がより新しい修正済み候補を提供する場合、レポートは対象パッケージに対してシミュレーションコマンドと更新コマンドを出力します。どちらも実行されません。 保留中のパッケージは特定され、提案されたコマンドから除外されます。依存関係と保留は依然としてトランザクション全体に影響する可能性があります。続行する前にシミュレーションを確認してください。
終了コード:
| コード | 意味 |
|---|---|
0 | 検出されたすべての PHP コアパッケージが既知の修正済みしきい値を満たしており、スキャン範囲内に追加の不明な検出事項がない。 |
1 | 少なくとも 1 つのパッケージが更新を必要としており、不明な検出事項がない。 |
2 | 不明な検出事項、監査の不完全、PHP コアパッケージが見つからない、サポートされていないシステム、または実行エラー。1 より優先される。 |
ルールは 2026-10-22 に検証されました。これらはスクリプトに埋め込まれており、自動的に更新されることはありません。将来のブランチやマッピングされていないブランチは UNKNOWN として報告されます。
| パッケージまたはブランチ | 修正済みしきい値 |
|---|---|
Debian 12 php8.2 ソースパッケージ | 8.2.35-1~deb12u1 |
Debian 13 php8.4 ソースパッケージ | 8.4.27-1~deb13u1 |
| アップストリーム PHP 8.2 | 8.2.35 |
| アップストリーム PHP 8.3 | 8.3.36 |
| アップストリーム PHP 8.4 | 8.4.27 |
| アップストリーム PHP 8.5 | 8.5.12 |
主な参照先:
apt update のエラーを解決してください。FIXED の結果は、ホストがこれまで侵害されたことがないことを証明するものではありません。python3 -m unittest discover -s tests -v
フィクスチャテストは Debian なしで実行されます。Debian 上では、追加のテストが実際の
dpkg --compare-versions を使用して、リリース境界、プレリリース、エポック、
パッケージリビジョンをカバーします。CI は両方の Debian リリースで、GitHub と GitLab の両方において、
テストとインストール済み PHP のスモークチェックを実行します。
バージョンルールの変更には、一次ベンダーのアドバイザリと回帰テストを含めてください。 バグレポートからはホスト名と機密パスを伏せてください。認証情報や本番環境の設定ダンプを含めないでください。
MIT。Copyright (c) 2026 PHP2Shell Checker contributors。