PHP に深刻な脆弱性(通称「php2shell」、CVE-2026-109618/CVE-2026-109619)が報告されています。修正版は 2026年10月21日(水)23時(日本時間)に公開予定と告知されています。
修正版が適用されるまでの間、「サイトを一時的に止めておきたい」と考え、当社の記事「WordPressのメンテナンス画面を表示する方法について解説」をご覧いただいている方が増えています。ありがとうございます。
ただし、プラグインを使ったメンテナンスモードでは、今回の脆弱性を防ぐことはできません。 この記事では、その理由と、「最悪サイトが表示されなくても構わないので、とにかく公開を止めたい」という場合の方法をご紹介します。
なぜメンテナンスモードでは防げないのか
メンテナンスモードのプラグインは、WordPress の仕組みの中で動いています。サイトにアクセスがあると、次の順番で処理が進みます。
- サーバー(Apache など)がアクセスを受け付ける
- PHP が起動する
- WordPress が読み込まれる
- プラグインが「メンテナンス中」の画面を表示する
今回の脆弱性は、PHP 本体(セッション関連の機能)にあると見られています。つまり、上の 2. の時点で攻撃が成立してしまう 可能性があります。メンテナンス画面は 4. で表示されるため、見た目はサイトが止まっていても、裏側では PHP が動いており、攻撃を受け付けてしまいます。
WordPress 標準のメンテナンスモード(.maintenance ファイル)も、PHP で処理されるため同じです。
PHP が動く前にアクセスを止めるには
PHP が起動する前、つまりサーバーの段階でアクセスを拒否する必要があります。レンタルサーバーで手軽にできる方法が、.htaccess を使って、自分の IP アドレス以外からのアクセスをすべて拒否する 方法です。
この方法では、自分以外の人にはサイトが一切表示されなくなります(「403 Forbidden」というエラー画面になります)。その代わり、PHP が起動する前にアクセスを止められます。
使えるサーバー
.htaccess は Apache 系のサーバー(LiteSpeed を含む)で使える仕組みです。エックスサーバー、さくらのレンタルサーバ、ロリポップ!など、多くの国内レンタルサーバーで利用できます。
nginx のみで動作しているサーバーでは .htaccess は使えません。その場合は、サーバー会社やお使いの保守会社にご相談ください。
手順1:自分の IP アドレスを確認する
「IPアドレス 確認」で検索すると、今使っているネットワークの IP アドレスを表示してくれるサイトが見つかります。表示された IP アドレスを控えておいてください。
IPv4(例:203.0.113.10)と IPv6(例:2001:db8::1)の両方が表示される場合は、両方控えておくと確実です。
手順2:.htaccess の先頭に追記する
FTP やサーバーのファイルマネージャーで、WordPress をインストールしたディレクトリにある .htaccess を開きます。ファイルの先頭 に、次の内容を追記します。
# --- php2shell 暫定対策:自分のIP以外を拒否 ここから ---
<IfModule mod_authz_core.c>
Require ip 203.0.113.10
# IPv6 も使っている場合は次の行も(先頭の # を外して書き換え)
# Require ip 2001:db8::1
</IfModule>
<IfModule !mod_authz_core.c>
Order deny,allow
Deny from all
Allow from 203.0.113.10
</IfModule>
# --- php2shell 暫定対策:自分のIP以外を拒否 ここまで ---
203.0.113.10 の部分は、手順1 で控えた自分の IP アドレスに書き換えてください。事務所と自宅など、複数の場所から作業する場合は、Require ip の行を IP アドレスごとに追加します。
元から書かれている # BEGIN WordPress 〜 # END WordPress の部分は、消さずにそのまま残してください。
手順3:表示を確認する
- 自分のパソコンからは、これまでどおりサイトや管理画面が表示されること
- スマートフォンのモバイル回線(Wi-Fi を切った状態)など、別のネットワークからは「403 Forbidden」になること
の2点を確認してください。
注意点
- IP アドレスが変わると、自分も締め出されます。 一般的なインターネット回線では、ルーターの再起動などで IP アドレスが変わることがあります。その場合は、FTP やファイルマネージャーで .htaccess を開き、IP アドレスを書き換えてください。
- Cloudflare などの CDN を経由しているサイトでは、この方法はそのまま使えません。 サーバーからはすべて CDN の IP アドレスに見えるため、自分も含めて全員が拒否されてしまいます。CDN 側の設定で対応してください。
- お問い合わせフォームや決済、外部サービスとの連携もすべて止まります。 業務への影響をご確認のうえで実施してください。
- これはあくまで一時的な措置です。 PHP の修正版が適用されたことを確認したら、追記した部分を削除して元に戻してください。
サイトを止められない場合は
サイトを止めずに対策したい場合は、PHP の設定で session.upload_progress.enabled を無効(0)にする緩和策が、セキュリティ企業から案内されています。サーバーのコントロールパネルや .user.ini で PHP の設定を変更できる場合は、こちらもご検討ください。
いずれの場合も、根本的な対策は PHP の修正版の適用 です。レンタルサーバーでは、多くの場合サーバー会社が順次適用します。お使いのサーバー会社からのお知らせもあわせてご確認ください。
対応に不安がある場合は
「.htaccess を触るのが不安」「自分のサイトがどのサーバーで動いているかわからない」といった場合は、Webの相談所にお気軽にご相談ください。
→ お問い合わせ
参考:PHPの重大な脆弱性「php2shell」(CVE-2026-109618、CVE-2026-109619)の概要と対応指針 – GMO Flatt Security Blog

