PHP2Shell 修正を妨げる廃止 API、依存関係の競合、拡張不足、ゲートウェイエラーを切り分けます。修正版 PHP で運用を戻し、両 CVE を検証します。

01

mysql_*・each・create_function がない

失敗リクエストの PHP を特定します。ext/mysql は PHP 7、each()/create_function() は PHP 8 で削除されました。依存を更新するか私有コピーで改修します。PDO/mysqli のパラメーター束縛とトランザクションを維持し、機械的置換や不明なパッチを避けます。

02

TypeError・メソッド宣言不整合

完全なエラーとスタックを制限付きログに保存します。独自 override と親/インターフェース、新しい型規則を比較します。該当依存を更新するか修正して試験します。型を一括削除せず、詳細を公開しないでください。

03

PHP 8.2 の動的プロパティ警告

非推奨警告だけでは RCE や侵害の証拠になりません。クラスを特定し保守版か意図したプロパティ修正を使います。シリアライズと ORM を試験します。非公開ログに記録して原因を直し、全警告の抑制を PHP2Shell 修正と見なさないでください。

04

Composer の環境制約競合

composer.json/lock を保存し、信頼するコピーで固定パッケージと check-platform-reqs --lock を確認します。prohibits で阻害を調べます。config.platform は依存解決の模擬で実 PHP は変わりません。--ignore-platform-reqs は互換証明になりません。新 lock を検査・試験します。

05

拡張・PDO ドライバーがない

CLI と Web/FPM の INI とモジュールを別々に比較します。PHP、CPU、NTS/ZTS の合う信頼できるバイナリを正しいサービスで有効化します。計画的にワーカー再起動し関数・接続を試します。CLI にあるだけでは Web を証明しません。

06

502・白画面・古い PHP

upstream、FPM 起動、アプリログを突き合わせます。socket/ポート、権限、サービス、バイナリを確認します。不整合拡張は起動を妨げます。設定検証後に制御して reload し、ログを残します。502 単体は侵害証拠ではありません。

07

文字化け・リンク・データ異常

ソース文字コード、DB charset/collation、出力、rewrite、保存パスを別々に確認します。GBK/UTF-8 変換は事前演習でフィールド・添付・URL を比較します。シリアライズ値の一括置換は避け、元 URL を維持するか検証済み転送を用意します。

PHP2Shell修正の確認

アプリ互換性、保守状況、PHPの安全性は別々に確認します。両CVEを修正したサポート中のPHPを選び、Webワーカー、定期処理、全レプリカを確認してください。プラグイン更新だけではPHPは更新されません。

4 つのブランチ。明確な更新先。
PHP ブランチこの番号未満の上流版最初の修正版セキュリティサポート終了
PHP 8.5< 8.5.12✓ 8.5.122029年12月31日
PHP 8.4< 8.4.27✓ 8.4.272028年12月31日
PHP 8.3< 8.3.36✓ 8.3.362027年12月31日
PHP 8.2< 8.2.35✓ 8.2.352026年12月31日
PHP 8.1 以前をお使いですか?

これらの通常リリースはありません。7.4、8.0、8.1 の最小ソースバックポートは公開されています。ベンダーの対応は別途確認が必要です。 ガイドを読む ↗

原典

PHP security team原典 ↗CVE-2026-109618原典 ↗CVE-2026-109619原典 ↗PHP 7.0原典 ↗PHP 8.0原典 ↗PHP 8.2原典 ↗PHP原典 ↗Composer原典 ↗
保守担当者のいない PHP サイトの PHP2Shell 対策 ↗← アプリ別ガイドへ戻る