コントロールパネル

aaPanel(宝塔)と 1Panel の PHP2Shell 対策

どちらのパネルも独自の PHP ビルドを配布しており、PHP プロジェクトがリリースしていない PHP 7.4・8.0・8.1 のパッチ版も含まれます。パネル本体を更新しても、サイトが使う PHP は更新されません。

最終確認 2026-10-23

パネルの更新は PHP の更新ではない

パネル経由でインストールした PHP は、バージョンごとに個別に更新・再起動する必要があります。各サイトやプロジェクトが実際に使っているバージョンをすべて確認してください。

ブランチ別の修正済み PHP ビルド

ベンダーが公開した最初の修正ビルドです。確認日:2026-10-22。

PHP ブランチ宝塔 / aaPanel1Panel種別
8.58.5.128.5.12PHP 公式リリース
8.48.4.278.4.27PHP 公式リリース
8.38.3.368.3.36PHP 公式リリース
8.28.2.358.2.35PHP 公式リリース
8.18.1.358.1.35パネルによるバックポート(PHP 公式リリースではない)
8.08.0.318.0.31パネルによるバックポート(PHP 公式リリースではない)
7.47.4.347.4.34パネルによるバックポート(PHP 公式リリースではない)
7.37.3.34提供なし宝塔のみ・スクリプトで導入
7.27.2.35提供なし宝塔のみ・スクリプトで導入
7.17.1.34提供なし宝塔のみ・スクリプトで導入
7.07.0.34提供なし宝塔のみ・スクリプトで導入

バックポートビルドは php -v でアップストリームの番号を表示する場合があります(例:1Panel の 8.1.35 の中身は PHP 8.1.34)。パネルに表示されるビルドを基準にしてください。出典:宝塔のセキュリティガイド、1Panel アプリストアのコミット。PHP 5.x はどちらのパネルにも修正がありません。該当サイトを隔離し、移行してください。

宝塔 / aaPanel

  1. サイト、データベース、設定をバックアップします。
  2. App Store → Installed(软件商店 → 已安装)を開き、Update app list(更新软件列表)をクリックします。
  3. サイトが使う各 PHP バージョンを表のビルドに更新します。パネル本体の先行アップグレードは不要です。
  4. 更新した PHP サービスをそれぞれ再起動し、バージョンとサイトの動作を確認します。
  5. PHP 7.0〜7.3 はまだ App Store から更新できません。宝塔がパッチスクリプトを提供しています。本番適用前にバックアップを取り、テスト環境で検証してください。
shell
# Every PHP version installed by 宝塔 / aaPanel
for p in /www/server/php/*/bin/php; do echo -n "$p: "; $p -r 'echo PHP_VERSION, PHP_EOL;'; done

# Restart the FPM service of each updated version (example: PHP 7.4)
/etc/init.d/php-fpm-74 restart

# PHP 7.0–7.3 only: 宝塔's patch script (back up first; use 71, 72 or 73 for other branches)
curl -fL -o php7_cve.sh https://download.bt.cn/install/php7_cve.sh && bash php7_cve.sh install 70

宝塔によると、ワンクリック強化(セキュリティセンター、パネル 13.1 以降)は一部の攻撃経路のリスクを下げるだけで、2 つの CVE を完全には修正しません。Nginx WAF 9.9.0 は両 CVE のルールを追加しましたが有償版のみで、パッチの代わりではなく併用するものです。

国際版の aaPanel も同じ手順のセキュリティ告知を出し、8.1.35 と 7.4.34 を挙げています。告知時点では 8.0 のビルドはテスト中でした。サーバーの App Store に実際に表示されるビルドを使い、バージョンを確認してください。

1Panel

  1. バックアップを取り、できれば負荷の低い時間帯に作業します。
  2. アプリストアを開き、リモートアプリを更新(更新远程应用)をクリックします。
  3. 各 PHP ランタイムで修正済みバージョンを選びます。7.4・8.0・8.1 のパッチ版には “1Panel patched” と表示されます。見つからない場合は、アプリ横のメジャーバージョン選択を切り替えてから一覧を開き直してください。
  4. 保存し、そのランタイムを使うプロジェクトを再起動してバージョンを確認します。
shell
# 1Panel PHP runtimes are containers: list them with their image tags
docker ps --format '{{.Names}}\t{{.Image}}' | grep -i php

# PHP version inside a runtime container
docker exec <container> php -v

1Panel の PHP ランタイムはコンテナ(1panel/php:<バージョン>)です。1Panel 本体を更新しても、既存プロジェクトのランタイムイメージは変わりません。

よくある質問

宝塔の PHP 7.4 / 8.0 / 8.1 修正版は PHP 公式リリース?+

いいえ。PHP プロジェクトがリリースしたのは 8.2〜8.5 のみです。宝塔と 1Panel の 7.4・8.0・8.1 パッケージは、PHP セキュリティチームのソースバックポートから独自にビルドされたものです。2 つの CVE は修正されますが、ブランチはサポート終了のままです。8.4 か 8.5 への移行を計画してください。

宝塔の WAF やワンクリック強化で更新の代わりになる?+

なりません。宝塔自身、ワンクリック強化は一部の攻撃経路のリスクを下げるだけだと説明しており、WAF ルールも既知のリクエストパターンしか防げません。PHP を更新し、ワーカーを再起動してください。

1Panel を更新したのにサイトが古い PHP のまま。なぜ?+

サイトごとのランタイムは別のコンテナイメージです。ランタイム設定で修正済みバージョンを選び、保存してプロジェクトを再起動してください。

関連ページ