WordPress脆弱性24件、2段階認証が素通りされる CVE-2026-15372
WordPressの拡張機能に脆弱性が24件公表され、うち4件は二段階認証を突破するものでした。WP 2FAは二段階目を検証しておらず、miniOrange 2FAは送り先を攻撃者に付け替えられます。ほかにパスワードで隠した記事が読める4件、サイトを乗っ取られる3件も。24件すべてに修正版が出ています。
目次
WordPressの拡張機能に脆弱性が24件公表され、うち4件は二段階認証を突破するものでした。WP 2FAは二段階目を検証しておらず、miniOrange 2FAは送り先を攻撃者に付け替えられます。ほかにパスワードで隠した記事が読める4件、サイトを乗っ取られる3件も。24件すべてに修正版が出ています。
2026年8月5日、WordPressの拡張機能(プラグイン)の脆弱性が24件まとめて公表されました。中でも重いのは、「2段階認証を追加するためのプラグイン」2種類に、その2段階認証をすり抜けられる欠陥があったことです。
1つはWP 2FA(CVE-2026-15372、危険度8.1)。導入数は100,000サイト以上です。もう1つはminiOrange 2FA(CVE-2026-16036、危険度7.5)。どちらもパスワードが漏れている状態で、2段階目が役に立ちません。パスワードが漏れても守るための仕組みが、パスワードが漏れた瞬間に無力になる、という形です。
危険度の数字だけで見ると最も高いのは別の1件で、CVE-2026-16940の10.0(満点)。ログインしていない相手が、サーバー上の好きなファイルを削除できます。
24件のうち11件はログイン不要で成立します。そして3件は、WordPressの管理画面から更新を受け取れません。うち1件は配布そのものが止まっており、修正版が存在しません。
対象と対処の早見表
自分のサイトが該当するかを確認できるよう、24件を並べました。上からログイン不要のものです。導入数はWordPress.orgの公式APIで取得した概数で、8月5日に確認しています。危険度は採番元であるWPScanが付けた値です(今回の24件はNVDに数値が登録されていないため、記事の側で数字を補ってはいません)。
| CVE番号 | 対象 | 主な用途 | 導入数 | 影響を受ける版 | 安全な版 | ログイン | 危険度 |
|---|---|---|---|---|---|---|---|
| CVE-2026 -16940 | Custom Fields for WooCommerce | 注文フォームの 項目追加 | 600以上 (公式外配布) | 1.5.1 より前 | 1.5.1 | 不要 | 10.0 |
| CVE-2026 -15360 | Ajax Load More | 記事の 追加読み込み | 30,000以上 | 8.0.1 より前 | 8.0.1 | 不要 | 8.6 |
| CVE-2026 -15210 | OTP Login With Phone Number | 電話番号での ログイン | 900以上 | 1.8.71 より前 | 1.8.71 | 不要 | 8.1 |
| CVE-2026 -16055 | Contest Gallery | 写真コンテスト の投稿受付 | 1,000以上 | 30.0.7 より前 | 30.0.7 | 不要 | 7.5 |
| CVE-2026 -16573 | Bit Form | 問い合わせ フォーム | 10,000以上 | 3.2.0 より前 | 3.2.0 | 不要 | 7.5 |
| CVE-2026 -16603 | Passster | 記事の パスワード保護 | 10,000以上 | 4.3.6 より前 | 4.3.6 | 不要 | 5.3 |
| CVE-2026 -16604 | Passster | 記事の パスワード保護 | 10,000以上 | 4.3.6 より前 | 4.3.6 | 不要 | 5.3 |
| CVE-2026 -16602 | Passster | 記事の パスワード保護 | 10,000以上 | 4.3.6 より前 | 4.3.6 | 不要 | 3.7 |
| CVE-2026 -16736 | User Registration & Membership | 会員登録 フォーム | 50,000以上 | 5.2.6 より前 | 5.2.6 | 不要 | 5.3 |
| CVE-2026 -16981 | DHL Shipping Germany | 配送ラベルの 作成 | 4,000以上 | 4.0.1 より前 | 4.0.1 | 不要 | 5.3 |
| CVE-2026 -16561 | Sunshine Photo Cart | 写真の 販売・納品 | 1,000以上 | 3.6.12 より前 | 3.6.12 | 不要 | 5.3 |
| CVE-2026 -16613 | GDPR Cookie Compliance | Cookie同意の バナー | 300,000以上 | 5.1.0 より前 | 5.1.0 | 不要 (リンク誘導) | 4.3 |
| CVE-2026 -16993 | DHL Shipping Germany | 配送ラベルの 作成 | 4,000以上 | 4.0.1 より前 | 4.0.1 | 不要 | 3.7 |
| CVE-2026 -15372 | WP 2FA | 2段階認証 | 100,000以上 | 4.1.0 より前 | 4.1.0 | パスワード 既知が前提 | 8.1 |
| CVE-2026 -16036 | miniOrange 2FA | 2段階認証 | 10,000以上 | 6.2.7 より前 | 6.2.7 (最新 6.2.8) | パスワード 既知が前提 | 7.5 |
| CVE-2026 -16605 | MultiVendorX | 複数出店の ネット販売 | 2,000以上 | 5.0.11 より前 | 5.0.11 | 出店者 | 7.2 |
| CVE-2026 -16583 | Orbit Fox | テーマの 機能追加 | 100,000以上 | 3.0.8 より前 | 3.0.8 | 投稿者 | 6.8 |
| CVE-2026 -16942 | WP Custom HTML Page | HTMLページの 作成 | — (配布停止中) | 0.6.2 以下 | 修正版なし | 投稿者 | 6.8 |
| CVE-2026 -15230 | YayPricing | 割引・値引きの 設定 | 3,000以上 | 3.5.7 より前 | 3.5.7 | 購読者 | 5.4 |
| CVE-2026 -17515 | MLSImport | 不動産物件の 取り込み | 5,000以上 | 7.0.4 より前 | 7.0.4 | 購読者 | 4.3 |
| CVE-2026 -14553 | Zportals | 会員ポータル (有償) | — (公式外配布) | 6.3.4 より前 | 6.3.4 (要確認) | 購読者 | 記載なし |
| CVE-2026 -16746 | MultiVendorX | 複数出店の ネット販売 | 2,000以上 | 5.0.11 より前 | 5.0.11 | 出店者 | 2.7 |
| CVE-2026 -16968 | GeoDirectory | 店舗・施設の ディレクトリ | 10,000以上 | 2.8.168 より前 | 2.8.168 | 寄稿者 | 2.7 |
| CVE-2025 -15677 | GeoDirectory | 店舗・施設の ディレクトリ | 10,000以上 | 2.8.110 より前 | 2.8.110 | 編集者 | 3.5 |
導入数が最も多いのはGDPR Cookie Complianceの300,000サイト、次いでWP 2FAとOrbit Foxが各100,000サイトです。危険度10.0のCustom Fields for WooCommerceは600サイト規模で、数の大きさと危険度の高さは、ここでも一致していません。
誰が狙い、何をして、何が失われるか
今回の24件を拾うのは、すでに誰かのパスワードを手元に持っている攻撃者です。他所から漏れた組み合わせを大量に買い集め、片端から試す。ログインまではたどり着けても、そこで2段階認証に阻まれる——というのが、いつもの光景でした。
今回わかったのは、その最後の壁が、条件次第で立っていなかったということです。2段階認証を入れているサイトほど「パスワードが漏れても大丈夫」と考えます。その前提が崩れます。
失われるものは、管理者アカウントそのものです。管理画面に入られれば、記事の書き換えも、別の管理者の追加も、サイト全体の作り替えもできます。会員制サイトなら会員の情報が、ネット販売なら注文と配送先が、そのまま持ち出せる場所に置かれています。2段階認証は「万一パスワードが漏れたとき」の保険です。その保険が効かないなら、パスワード管理だけが最後の防壁になります。同じ形の話として、同じminiOrange製のログイン連携プラグインでパスワード不要の乗っ取りが出た件も扱っています。
2段階認証のプラグインが、2段階認証を守れていませんでした
CVE-2026-15372: WP 2FAは、2つ目の要素をそもそも検証していませんでした
導入数100,000サイト以上。今回で最も広く使われている2段階認証プラグインです。危険度8.1。
中身はこうです。ログイン時に、対応している認証方式のうち特定の1つが選ばれた場合、2つ目の要素の検証が行われません。パスワードを知っている相手は、2段階認証を完全に迂回してアカウントに入れます。管理者アカウントも例外ではありません。採番元のWPScanの記録は、この経路を「Passkeysプロバイダ経由の2段階認証バイパス」と表現しています。
修正は4.1.0で、7月24日に配布されています。危険度の記号は CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H。AC:H——攻撃の難易度が「高」と評価されているのは、パスワードを事前に握っている必要があるためです。
CVE-2026-16036: miniOrange 2FAは、2つ目の要素を付け替えられました
導入数10,000サイト以上、危険度7.5。こちらは仕組みが違います。
ログイン前の確認画面で2つ目の要素を設定する場面があるのですが、そこで設定される要素が、対象アカウントにすでに登録されている要素と結びつけて検証されていませんでした。パスワードを知っている相手は、被害者の2つ目の要素を、自分が受け取れる宛先へ付け替えられます。付け替えた先に届いたコードで確認を通し、そのままアカウントを奪う——管理者アカウントを含みます。
修正は6.2.7、現在の最新は6.2.8(7月24日)です。
2件に共通するのは「パスワードを知っている攻撃者」が前提だという点です。裏を返せば、パスワードが漏れていなければ、この2件だけで入られることはありません。ただし、他所のサービスから漏れた組み合わせを使い回している利用者がいれば、その前提は簡単に満たされます。2段階認証を入れているサイトこそ、この2件は当てておくべきです。
危険度10.0の1件は、公式の配布所に置かれていません
CVE-2026-16940: ログイン不要で、サーバー上の好きなファイルを消せる
24件で唯一の満点、危険度10.0です。対象はWooCommerceの注文フォームに項目を足すプラグイン「Custom Fields for WooCommerce」(Addify製)で、1.5.1より前が該当します。
削除するファイルの場所が検証されておらず、ログインしていない相手が、サーバー上の任意のファイルを消せます。WPScanは消せるものの例として wp-config.php を名指ししています。この1つを消すと、WordPressは「まだセットアップされていないサイト」に戻ります。そこへ攻撃者が自分の用意したデータベースをつなげば、サイトはそのまま相手のものになります。
やっかいなのは配布経路です。このプラグインはWordPress.orgの公式ディレクトリにありません。WooCommerceの販売所と開発元のサイトで売られている有償プラグインで、管理画面の「更新」欄に自動では出てきません。ライセンスを登録していないサイトでは、更新が来ないまま放置されている可能性があります。心当たりがあるなら、購入元にログインして最新版を取り直してください。
なお、WordPress.orgには「Custom Fields」というまったく別の同名プラグインがあります(2019年に配布停止済み)。混同しないよう注意してください。今回の対象はWooCommerce向けのほうです。
ログインせずに狙える11件から、実害の大きいもの
CVE-2026-15360: Ajax Load Moreからデータベースを時間差で読み出せる
導入数30,000以上、危険度8.6。記事一覧の「もっと読む」を実現するプラグインです。ログイン不要で、データベースへの命令を送り込めます。応答が返るまでの時間差から中身を1文字ずつ推測する形の攻撃で、時間はかかりますが、確実にデータが抜けます。8.0.1で修正済みです。
CVE-2026-16981 / CVE-2026-16993: DHLの配送ラベルが外から取れる
今回で最も生々しい個人情報の漏れ方がこの2件です。WooCommerce向けの配送ラベル作成プラグインで、導入数4,000以上。
CVE-2026-16981は、保存された配送ラベルに連番の番号でアクセスでき、ログインなしで順番にダウンロードできます。配送ラベルには受取人の氏名と住所が印字されています。番号を1つずつ増やすだけで、そのサイトの注文者名簿が丸ごと手に入る、ということです。
CVE-2026-16993は保存先の守り方の問題です。ラベルの置き場所を .htaccess という仕組みで守っていたのですが、この仕組みが効かないサーバー構成(nginxなど)では、置き場所に直接アクセスできてしまいます。どちらも4.0.1で修正済みです。
CVE-2026-16604: Passsterは、保護した中身をHTMLに書き出していました
記事にパスワードをかけるプラグインで、今回3件が出ています。中でも分かりやすいのがCVE-2026-16604で、パスワードで守ったはずの本文が、パスワードを確認する前の段階でページのHTMLに書き出されていました。ブラウザでページのソースを表示するだけで読めます。
残る2件も入口が違うだけで、行き着く先は同じです。CVE-2026-16603はWordPress本体のデータ取得口を使うとカテゴリ単位の保護が効かず、本文・タイトル・抜粋が取れます。CVE-2026-16602は、プラグインが持つ確認用の窓口から下書き・非公開・保留中の記事まで読めるというもの(こちらは画像認証の設定がある場合に限られます)。3件とも4.3.6で修正済みです。
CVE-2026-16736: 会員登録を止めていても、アカウントを作られる
導入数50,000以上の会員登録プラグインです。「新規登録を受け付けない」という設定が迂回でき、ログインなしでアカウントを作られます。作られるのは一般権限のアカウントですが、今回の他の件——たとえば購読者権限で成立するもの——と組み合わせる足がかりになります。5.2.6で修正済みです。
CVE-2026-16613: 30万サイトのCookie同意バナーは、強制ログアウトに使われる
今回で最も導入数が多い300,000サイト以上のプラグインですが、危険度は4.3にとどまります。細工したリンクを踏ませることで、訪問者を強制的にログアウトさせたり、保存された同意の記録を消したりできるという内容です。サイトが乗っ取られる種類ではありません。5.1.0で修正済みです。
更新を受け取れない3件
24件のうち3件は、WordPressの管理画面から更新が来ません。理由はそれぞれ違います。
| プラグイン | 状態 | 対処 |
|---|---|---|
| WP Custom HTML Page | 公式で配布停止中 最終更新は6年前 | 削除するしかない |
| Custom Fields for WooCommerce | 公式外の有償配布 | 購入元から 1.5.1を取り直す |
| Zportals | 公式外の有償配布 | 販売元へ確認 |
最も重いのはWP Custom HTML Pageです。WordPress.orgのページには「2026年6月21日をもって公開を停止した。これは審査中の一時的な措置である」と表示され、ダウンロードもできません。最後の更新は6年前のバージョン0.6.2で、WPScanの記録にも修正版が書かれていません。使っている場合、直す方法はなく、無効化して削除する以外の選択肢がありません。
Zportalsについても補足しておきます。有償プラグインの公式サイトで確認できたリリース情報の最新は6.2.0(2026年3月29日)で、WPScanが修正版とする6.3.4系の記載が見当たりません。当サイトとして修正版の存在を確認できていない、というのが正確なところです。使っている場合は販売元に直接問い合わせてください。
実際に攻撃されているのか
24件のいずれについても、実際に攻撃に使われたという報告は8月5日時点で見つかりません。米政府CISAが実際に攻撃されている脆弱性をまとめた一覧(KEV)の8月4日版・全1,660件を照合しましたが、今回の24件は1件も入っていません。KEVの読み方はCISA KEVダッシュボード(日本語版)にまとめています。
攻撃の手順を再現するコード(実証コード)も、現時点では公開されていません。WPScanは、修正版が行き渡るまで実証コードを伏せる方針を取っています。ただしこれは「いずれ公開される」という意味でもあります。今が最も対処しやすい時期です。
なお、今回の24件はNVDに危険度の数値が登録されていません(8月5日時点で全件が「受付済み」の段階です)。この記事に載せた数字は、すべて採番元であるWPScanが付けた値です。今後NVDが独自の評価を付けた場合、数字が動く可能性があります。実際、Apache Traffic Serverの件では開発元の評価とNVDの評価が3ポイント以上ずれました。
やるべきこと
まず管理画面の「更新」を開き、早見表にあるプラグインが並んでいたら当ててください。21件はWordPress.orgで修正版が配られており、更新すれば終わります。
2段階認証を使っているサイトは、WP 2FAとminiOrange 2FAを優先してください。この2つは「2段階認証を入れているから安心」という前提そのものを崩します。あわせて、管理者アカウントのパスワードが他所と使い回しになっていないかも確認する価値があります。2件とも成立の前提はパスワードが漏れていることです。
WooCommerceで買い物かごを運用している場合は、公式ディレクトリ外から入れた有償プラグインを棚卸ししてください。危険度10.0のCustom Fields for WooCommerceがまさにそれで、管理画面には更新の通知が出ません。
WP Custom HTML Pageを使っている場合は、削除してください。修正版がなく、配布も止まっています。同じ日の別のバッチも公表されており、こちらの10件はすべて修正版が配られています。あわせて確認しておくと、取りこぼしが減ります。
まとめ
2026年8月5日、WordPressプラグインの脆弱性24件が公表されました。目を引くのは、2段階認証を追加するためのプラグイン2種に、その2段階認証をすり抜けられる欠陥があったことです。WP 2FA(100,000サイト以上)は2つ目の要素を検証せず、miniOrange 2FA(10,000サイト以上)は2つ目の要素を付け替えられました。どちらもパスワードが漏れていることが前提ですが、その前提が満たされたときのための仕組みが2段階認証です。
危険度10.0はCustom Fields for WooCommerceの1件で、ログイン不要でサーバー上の任意のファイルを削除できます。ただしこのプラグインは公式ディレクトリ外の配布で、管理画面に更新が出ません。
24件のうち11件はログイン不要、3件は更新を受け取れず、うち1件は修正版そのものが存在しません。実際に攻撃された報告と実証コードの公開は、いずれも現時点でありません。手を打つなら今です。
よくある質問
2段階認証は使わないほうがいいのですか
そうではありません。今回のは特定のプラグインの特定バージョンの欠陥で、2段階認証という考え方の問題ではありません。修正版に上げたうえで、使い続けるのが正解です。
パスワードが漏れていなければ大丈夫ですか
2段階認証の2件についてはそのとおりです。ただし他所のサービスから漏れた組み合わせを使い回している場合、漏れていないつもりでも前提は満たされます。24件のうち11件はパスワードすら不要です。
危険度が低い件は後回しでいいですか
数字より「自分のサイトに入っているか」で判断してください。今回、危険度4.3のプラグインが300,000サイト、危険度10.0のプラグインが600サイト規模です。数字の順に手を付けると実態から外れます。
修正版がないWP Custom HTML Pageはどうすれば
無効化して削除してください。公式での配布が2026年6月21日から止まっており、最後の更新は6年前です。代わりの手段を探すほうが早い状態です。
今日はWordPressの記事が2本ありますが違いは
採番した組織が違います。もう一方の10件はWordfenceによるもので、全件が修正済みでした。この記事の24件はWPScanによるもので、11件がログイン不要、3件は更新を受け取れません。対象プラグインに重複はありません。
参照元
- ▸WPScan - WP 2FA < 4.1.0 Two-Factor Authentication Bypass via Passkeys Provider(CVE-2026-15372)
- ▸WPScan - miniOrange 2FA < 6.2.7 2FA Bypass via Password-Only Second-Factor Rebinding(CVE-2026-16036)
- ▸WPScan - Custom Fields for WooCommerce < 1.5.1 Unauthenticated Arbitrary File Deletion(CVE-2026-16940)
- ▸NVD CVE-2026-15372(WP 2FA)
- ▸NVD CVE-2026-16036(miniOrange 2FA)
- ▸NVD CVE-2026-16940(Custom Fields for WooCommerce)
- ▸NVD CVE-2026-15360(Ajax Load More)
- ▸NVD CVE-2026-16942(WP Custom HTML Page・修正版なし)
- ▸WordPress.org - WP Custom HTML Page(配布停止の告知)
- ▸WordPress.org プラグインディレクトリ(導入数・現行版・更新日を2026年8月5日に取得)
- ▸CISA Known Exploited Vulnerabilities Catalog(2026年8月4日版・全1,660件を照合)
- ▸WPScan 脆弱性開示ポリシー(実証コードの取り扱い)

堀川 慎
Backend Engineer / AWS / Django / Go