PHP・WordPress脆弱性対策の基本|中小企業のサイト担当者が今日からできる防御策

想定読者

自社サイトをWordPressで運用している中小企業の広報・総務担当者(IT専任者不在で、外部の制作会社に委託しつつ日常更新は自社で行っているケースを想定)

要点

  • WordPressの脆弱性は「更新放置」と「不正ログイン」の2パターンに集約されます
  • ツール導入や大掛かりな改修は不要で、設定変更だけでできる対策を優先順位付きで紹介します
  • メールのなりすまし対策とは別領域のため、本記事はCMS本体の防御に限定します

「うちは狙われない」が一番危ない

中小企業サイトが狙われる理由

サイバー攻撃というと大企業を思い浮かべがちですが、実際の攻撃の多くは自動化されたプログラムによる無差別スキャンです。攻撃者は企業の規模ではなく、古いバージョンのまま放置されたサイトを機械的に探し出します。「小さな会社だから狙われない」という前提は成り立ちません。

被害が起きたときの実害

サイトの内容を書き換えられる改ざんや、サイトを乗っ取って別の攻撃の踏み台にされる被害に加え、検索エンジンから警告表示され問い合わせが減るなど、信用面での損失も小さくありません。

脆弱性の入り口は2つしかない

WordPressの脆弱性の入り口が「更新放置」と「不正ログイン」の2つであることを示す図

放置されたバージョン(本体・テーマ・プラグイン)

WordPress本体だけでなく、デザインを決めるテーマや機能を追加するプラグインにも脆弱性は見つかります。開発元は修正版を公開していますが、更新を後回しにしている間は既知の弱点が公開されたままになります。

推測されやすい管理画面ログイン

もう一つの入り口はログインです。管理者IDが初期設定の「admin」のままだったり、パスワードが単純だったりすると、ID・パスワードを機械的に総当たりで試す攻撃(ブルートフォース攻撃)の標的になりやすくなります。

今日からできる3つの対策

自動更新・ログイン強化・バックアップという3つの対策ステップを示す図

自動更新をオンにする

WordPress本体は管理画面の設定で自動更新を有効にできます。テーマやプラグインも多くは個別に選べるため、制作会社と相談のうえ重要なものから順にオンにしましょう。

管理者IDを変え、ログイン試行回数を制限する

「admin」など推測されやすいIDを使っている場合は新しい管理者を作成して切り替えます。あわせて、ログイン失敗を一定回数で一時ブロックする設定や、パスワードに加えて追加確認を行う二段階認証を導入すると、不正ログインのリスクを大きく下げられます。

定期バックアップを別サーバーに残す

万一被害に遭っても、直前の状態に戻せるバックアップがあれば復旧の時間を短縮できます。サイトと同じサーバーだけでなく、別のサーバーやクラウドストレージにも定期的に保存しておくことが重要です。

制作会社に任せている場合の確認ポイント

更新作業の頻度と責任範囲を契約で確認する

「更新は制作会社がやってくれているはず」という思い込みは危険です。本体・テーマ・プラグインそれぞれの更新頻度と、誰がどこまで対応する契約になっているかを確認しておきましょう。

月次点検レポートをもらう習慣をつける

更新状況やバックアップの実施状況を毎月レポートしてもらう習慣をつけると、対応漏れに自社でも気づきやすくなります。

なお、メールのなりすまし対策については別記事で扱っていますので、そちらをご参照ください。

2026年10月のPHP脆弱性への対応策

PHPの脆弱性への対応を、版の確認・サーバー会社の告知の確認・古い版の切り替え・自社管理サーバーの更新の4ステップで示す図

何が起きたのか

2026年10月21日(日本時間23時ごろ)、PHPの開発元が重大な脆弱性2件(CVE-2026-109618・CVE-2026-109619)を修正した版を公開しました。

深刻度はCVSS v4.0で9.2の「緊急」に当たり、条件がそろうと、ログインしていない外部の人にサーバー上でプログラムを実行される恐れがあります。

対象はWebのリクエストを処理するPHP全般で、PHP-FPMやApacheのmod_phpなどが含まれます。

修正版は8.5.12・8.4.27・8.3.36・8.2.35です。

この記事で取り上げてきた本体・テーマ・プラグインの問題とは違い、WordPressが動く土台であるPHPそのものの問題です。

そのため、WordPressを最新にしていても影響を受けます。

お店に例えると、WordPressの本体やプラグインの脆弱性は「店内の棚や裏口の鍵」の問題でした。

今回は「お店が入っている建物の基礎」の問題です。店内をどれだけ整えても、建物の土台に穴があれば、そこから入られてしまいます。

お店の建物の基礎のひび割れから侵入者が入り込もうとしている様子。店内の棚や扉の鍵は整っていても、土台に穴があると入られることを表す絵

「ログインせずにプログラムを実行される」とは、合鍵を持たない人が外から入り込み、レジや機械を勝手に操作できてしまう状態です。

改ざんや情報の持ち出し、ほかへの攻撃の踏み台など、サーバーの上でできることはほぼ何でもされる恐れがあります。

2件の仕組みは、受付の窓口に例えると分かりやすくなります。1件目(CVE-2026-109618)は、受付係が荷物を受け取る途中で手がいっぱいになり(メモリ不足)、書きかけの伝票を残したまま作業を打ち切ってしまう問題です。

あとで片付ける係が、その書きかけの伝票を正しいものとして処理してしまい、そこを突かれます。

2件目(CVE-2026-109619)は、前のお客さんが返したはずのロッカーの番号札が、次のお客さんの手続きでまだ使われてしまう問題です。

PHPは1つの処理係が何人ものお客さん(リクエスト)を順番に受け付けるため、前の人の後始末が不完全だと、次の人の手続きに古い情報が紛れ込みます。

受付窓口の例え。左は荷物を抱えすぎた受付係が書きかけの伝票を落とし、別の係が拾う場面。右はロッカーの前で番号札をやり取りする場面

開発元は公開の時点で実際に動く攻撃コードは確認していないとしています。

しかし、海外のセキュリティ報道では公開前から攻撃の試みが観測されたと伝えられており、国内でもレンタルサーバー各社が管理画面を一時停止するなどの予防的なメンテナンスを行いました。

まずPHPのバージョンとサーバー会社の告知を確認する

WordPressの管理画面で「ツール」→「サイトヘルス」→「情報」→「サーバー」を開くと、PHPのバージョンを確認できます。

「8.3」ではなく「8.3.36」のように末尾の数字まで見てください。

共用のレンタルサーバーでは、PHP本体の更新はサーバー会社の仕事です。たとえばエックスサーバーは、10月22日14時までに提供中のPHP 5.6〜8.5のすべてに修正を適用したと告知しています(5.5以下は準備中)。

共用のレンタルサーバーは賃貸マンションのようなもので、建物の修繕は大家さん(サーバー会社)が行います。

入居者がすべきことは、大家さんのお知らせを読み、修繕が済んだか、部屋の側で何かする必要があるかを確かめることです。

左は大家さんが賃貸マンションの外壁を修理し入居者がお知らせを読む様子、右は一軒家の持ち主が自分で土台のひびを修理する様子

サーバー会社が独自の修正で対応している場合は、表示されるバージョンの数字が修正版と一致しないこともあります。

数字だけで判断せず、契約しているサーバー会社のお知らせで、対応が済んだか、利用者側の作業が必要かを確かめましょう。

PHP 8.1以前ならサポート中の版へ切り替える

PHP 8.1以前は開発元からの更新が終わっており、今回も正式な修正版は出ていません。サーバーの管理画面で8.1以前を選んでいる場合は、サポート中の版へ切り替えましょう。

メーカーの部品の供給が終わった古い型の鍵を使い続けているようなもので、今回のような欠陥が見つかっても、メーカーからの交換部品は届きません。

8.2も2026年12月31日でセキュリティ修正が終わるため、切り替えるなら8.3以上が目安です。

切り替える前にバックアップを取り、切り替えた後はページの表示やお問い合わせフォームが正しく動くかを確認してください。

VPSや自社管理のサーバーはすぐに更新する

VPSやクラウドでサーバーを自社管理している場合は、修正版へ更新したうえで、PHP-FPMやApacheを再起動します。

主なLinuxディストリビューションには事前に修正が配られているため、OSのパッケージの更新を確認してください。

VPSや自社管理のサーバーは持ち家と同じで、修繕を代わりにしてくれる大家さんはいません。自分で直さない限り、穴は開いたままです。

すぐに更新できない場合に向けて、開発元は一時的な緩和策も示しています。

ただし「更新だけが完全な対策で、設定変更では安全にはならない」と明記されているため、あくまで更新までのつなぎです。

割れた窓に板を打ち付けるような応急処置で、確認されている侵入経路はふさげても、窓そのものが直ったわけではありません。

  • session.upload_progress.enabled を 0 にし、すべてのPHPプロセスを再起動する(php.iniやFPMプールの設定で行う。ini_set() や .user.ini では効かない)
  • memory_limit を -1 にし、アプリから上書きできない形(php_admin_value など)で設定する
  • post_max_size を小さくする(ファイルのアップロードを使わないなら8M、使うなら32Mが目安)
  • PHP 8.5では fatal_error_backtraces も 0 にする

10月23日に追加された脆弱性への対処

10月23日、PHPの開発元は新たな脆弱性(CVE-2026-115560)についての告知を出しました。

この脆弱性も、条件がそろうと、外部の人にサーバー上でプログラムを実行される恐れがあるものです。

ただし、起きるのは珍しい設定とプログラムの組み合わせのときだけです。開発元も実際には起こりにくいとして、緊急の修正版ではなく、次の定例の更新で直すとしています。

起きるのは、次の3つがすべてそろったときです。

  • 設定で session.serialize_handler(セッションの保存形式)を php_binary か php_serialize にしている
  • プログラムの中で ini_set() を使い、session_start() の前にその形式を php に切り替えている
  • session.upload_progress.enabled(アップロードの進み具合の記録)が有効のまま

session.serialize_handler の初期値は php なので、初期設定のまま使っていれば当てはまりません。WordPress本体にも、この形式を途中で切り替える処理はありません。

対処は、10月21日の緩和策の1つ目と同じです。修正版が出るまで、session.upload_progress.enabled を 0 にしておきます。

10月21日の時点でこの設定をしていれば、追加の作業は要りません。先ほどの例えで言えば、割れた窓に打ち付けた板は、次の修理が済むまで外さずに残しておきましょう。

共用のレンタルサーバーでは、この設定を利用者が変えられるか、サーバー会社が対応しているかは会社によって違います。新しい告知が出ていないか、契約しているサーバー会社のお知らせを確認してください。

定例の更新が出たら、10月21日の修正版のときと同じように、末尾の数字まで確かめて更新しましょう。

保守を任せている場合は対応状況を文面で確認する

制作会社や保守会社に任せている場合は、CVE番号(10月21日の2件と10月23日の1件)を伝え、対応が済んだか、まだならいつ済むかを文面で確認しておきましょう。

前の章で触れた「責任範囲の確認」や「月次点検レポート」が、こうした緊急時に役立ちます。

詳しい内容は、PHP公式のセキュリティ告知(英語)と、10月23日の追加の告知(英語)で確認できます。

お勧めのセキュリティ系プラグイン

ここまで紹介した対策の多くは、専用のセキュリティプラグインを導入することで手間をかけずに実現できます。自社の運用体制に合わせて選ぶ際の参考にしてください。

CloudSecure WP Security(Xserver)

Xserverが提供するプラグインで、ログイン試行回数の制限や管理画面への不正アクセス検知など、本記事で挙げた対策の多くをまとめて設定できます。Xserverのレンタルサーバーを利用している場合は親和性が高く、導入のハードルが低い点が特徴です。

SiteGuard WP Plugin

国内の開発元が提供する定番プラグインで、ログインページのURL変更や画像認証の追加など、不正ログイン対策に特化した機能が揃っています。管理画面が日本語で分かりやすいため、IT専任者がいない体制でも扱いやすいプラグインです。

All In One WP Security & Firewall

ログイン保護に加えて、ファイアウォール機能やファイルの改ざん検知など、サイト全体を幅広くカバーするプラグインです。機能が多い分、最初はすべてを有効にせず、優先度の高い設定から段階的に取り入れることをおすすめします。

いずれのプラグインも、本記事で紹介した「更新」「ログイン」「バックアップ」という3つの基本対策を補強する位置づけです。プラグイン任せにせず、まずは本体の対策を固めたうえで導入を検討しましょう。

▼略歴

1970年 東京都世田谷区生まれ。
少年期を豊かな自然に囲まれた栃木県日光市で過ごす。
趣味は山歩きや渓流釣り、そして中学生の頃から始めたパソコンとBASICのプログラミングでした。
部活は陸上部に所属。短距離走や砲丸投げの選手で、度々表彰されていました。
高校からギター部に入ってギターを学び、作詞・作曲をするようになりました。上京後、路上ライブをしたりしていました。

高校・専門学校にて経営・財務の分野を学ぶ。
新卒で建設・不動産業界の経理部に就職し、次の業務を経験。

  • 住宅ローンアドバイザー

パソコン販売専門チェーンにて、次の業務を経験。

  • 複数店舗のマネージャー
  • PCソフトウェアのマーチャンダイザー

家電メーカーグループ企業にて、次の業務を経験。

  • 直営店舗の運営と商品のマーチャンダイザー
  • PCのBTOビジネスや家電ホームネットワークの普及推進
  • デジタル一眼の使い方セミナーの講師
  • WEBマスターとして、ポータルサイト、イントラサイト、楽天などのeコマースサイトの制作・運営
  • 情報セキュリティマネジメント(ISMS)とナレッジマネジメントの推進
  • 銀座のツーリスト向け店舗に勤務

家電量販店にて、次の業務を経験。

  • 六本木の店舗にて店長を経験
  • 店舗開発部での営業支援(新店舗出店時のレイアウト設計や出店準備、VMDの企画・制作など)

ホテル宴会場などの常駐イベント支援やAVシステム事業を行う業界中堅企業にて、インテグレーターとして次の業務を担当。

  • 手術室・血管造影室の画像・映像配信システムの開発・設計とエンジニアリング
  • 医療向けシステムやフェリーの設備を安全にリモートメンテナンスするソリューションの開発・運用
  • メディカル部門のマネージャーを経験

同企業にて、全社の事業推進プロジェクト部門に参画し、次の業務を経験。

  • 室長と共に、ゼロからデジタルマーケティングの仕組みを立ち上げ
  • 会社のリブランディングプロジェクト

SaaS開発・販売企業にて、次の業務を経験。

  • セールスエンジニア

アプリ開発の設計や仕組みを学びました。

  • 論文 医師偏在の課題と向き合う遠隔手術支援ソリューション(CiNiiで検索)
  • 論文 手術室の生産性向上に貢献する医療映像ソリューション(CiNiiで検索)
  • 現在、企業向けにIT技術者育成セミナー(ネットワーク/企業のAI導入等)を行っています。