自分のコミットも、もう信頼されない。WordPress.orgの24時間保留が意味すること
SVN に新しいバージョンをコミットしたのに、24時間サイトに届かない。最初は自分が何かやらかしたと思いました。でも調べていくうちに、これは操作ミスではありませんでした。もっと根の深い話だと、分かってきたんです。配信する側が、作者である自分のコミットを、信頼しなくなった。今回の24時間保留は、そういう話でした。
自作プラグインの更新を SVN にコミットしたら、「このバージョンは約24時間後にサイトへ配信されます」というメッセージが返ってきた、というのが入口です。何が起きて、どう対応するかは、手順としてサイトに別記事を書きました。この記事では、その手前にある「なぜ配信の信頼モデルが変わったのか」を、セキュリティの角度から書きます。操作手順だけ知りたい方は、先にそちらを読んでもらうのが早いです。
検証メモ
事実は確認した時点のものとして読んでください。出典は末尾にまとめます。
- 24時間保留がデフォルト化されたのは2026年6月5日(WordPress.org 公式発表)
- 引き金になった Essential Plugin 事件は2026年4月7日
- 数字や仕様は動くので、最新は公式で確認してください
セキュリティの話なので、自分の理解の範囲で書いています。手元のプラグインで実際に保留を踏んだ体験は本物ですが、攻撃の詳細は報道と公式発表をもとにした整理です。
何が「保留」されているのか
まず、誤解しやすいところを片づけます。保留されているのは、自動更新の配信パイプラインだけです。
WordPress.org のプラグインページ自体は、コミットするとすぐ新バージョン表示に切り替わります。zip も新しいものに差し替わっている。止まっているのは、各サイトの「更新があります」という通知と、自動更新で実際にファイルが届く経路だけです。そのため、ページ上は新バージョンなのに、世界中のサイトの管理画面はまだ旧バージョンのまま、という時間差が生まれます。
この時間差そのものは、たいした問題ではありません。問題は、なぜそこに検問所が要るようになったか、です。
信頼の前提が、ひとつ壊れた
これまで、プラグインの配信には、ある暗黙の前提がありました。SVN のコミット権を持っている人は、信頼できる。コミットされたものは、即座に全ユーザーへ配信していい。この前提の上に、WordPress のプラグイン配信は何年も回ってきました。
その前提が、2026年4月に壊れます。
Essential Plugin というブランドのプラグイン31本が、公式ディレクトリから一斉に削除されました。全部にバックドアが仕込まれていたためです。報じられた影響範囲は、最大40万サイト。ここで嫌らしいのは、攻撃者がどこもハッキングしていないことです。彼らがやったのは、プラグインを買収することでした。Flippa でプラグインごと買って、正規の SVN コミット権を手に入れる。そして、正規の更新として、マルウェアを配信した。
混入したコードは191行。互換性パッチを装った1回の更新に紛れ込ませて、8か月間は何もせず潜伏していたと言われています。正規の配信経路が、そのまま攻撃の配送路になった。鍵を盗むのではなく、鍵ごと買う。教科書のようなサプライチェーン攻撃でした。
ここで効いてくるのが、さっきの前提です。コミット権を持つ人は信頼できる、という前提は、コミット権が悪意ある人の手に渡った瞬間に、まるごと崩れます。そして、作者側がどれだけ自分のコードを守っても、コミット権そのものが売買されてしまえば、その防御は意味をなさない。作者の善意に依存した安全は、善意が前提でなくなった瞬間に、ゼロになるんです。
検査の層は、配信側にしか置けない
ではどうするか。作者を信頼するのをやめて、配信の前に全員を検査する、というのが今回の答えでした。
2026年6月5日、オプトインだった24時間遅延が、公式ディレクトリの全プラグイン、6万1千本超に一律で適用されるデフォルトに変わりました。「Protect The Shire」と名付けられた施策の一部で、この24時間は、モデレーターとセキュリティスキャナーが配信前に変更を確認する時間に充てられる、と説明されています。
考えてみれば、この検査を置ける場所は、配信側しかありません。作者本人に「あなたのコミットは安全ですか」と聞いても、悪意ある作者は「安全です」と答える。Essential Plugin の攻撃者だって、正規の手続きを正規に踏んでいました。作者の自己申告に依存するかぎり、買収された作者は素通りします。だから、作者を信頼する前提そのものを外して、配信の手前に検査の層を置くしかない。これは、作者を疑っているというより、作者を信頼してももう安全を保証できない、という構造の話でした。
なぜ、今になって全体に広げられたのか
ひとつ引っかかるのは、なぜ2025年8月にはオプトインだったものが、2026年になって6万本超に一律で適用できたのか、です。ここに、AI の影が二重に差しています。
ひとつは、脅威の側です。生成AIで、プラグインは以前より桁違いに量産できるようになりました。提出される数が増えれば、そのなかに紛れ込む悪意あるコードや、質の低いコードの絶対数も増える。手作業のレビューだけでは、もう追いつきません。
もうひとつは、防御の側です。WordPress のプラグインチームは、提出物を審査する内部スキャナーを、AI 支援の機能と多数の自動チェックで強化したと、2026年初めに明らかにしています。人間のレビュアーが見るべき箇所を、機械が先に洗い出す。6万本を一律に検査する、という芸当が現実味を帯びたのは、この自動化があったからです。
皮肉な構図だと思います。AI が、疑うべき入力の量を増やし、同じ AI が、それを捌く検査の手を増やした。攻撃の物量も、防御の物量も、同じ技術で押し上げられている。24時間の検問所は、その押し合いの真ん中に立っています。
「信頼できない入力」の境界が、また動いた
自分はこれまで、AIが書いたコードは信頼できない外部入力として扱え、ということを何度か書いてきました。AIの出力をそのまま信じず、サニタイズして、疑ってから使う。その「信頼境界」を、コードの内側に引く話です。
今回の変更は、その境界がもう一段外に動いた、と自分は受け取りました。これまで信頼の内側にいた「作者のコミット」が、配信側から見ると、信頼できない入力の側に移った。AIの出力だけでなく、人間の作者のコミットも、検査を通すまでは信頼しない。信頼の初期値が、内側から外側へ、もう一段下がったということです。
正直、これを自分が支持できるのは、自分のコードを疑ってきた経験があるからかもしれません。自作プラグインのセルフレビューで、35件もの問題を見つけたことがあります。自分が書いて、自分でいいと思って出そうとしたコードに、それだけの穴があった。その経験からすると、コードは出荷前に疑われるくらいでちょうどいい。配信側が作者全員を疑うのは、自分を含めて疑う、ということで、それはむしろ正しいと感じます。
24時間の、もう一方の顔
支持すると書きましたが、この遅延には代償もあります。そこは正直に書いておきます。
Patchstack の2026年の調査では、影響の大きい WordPress の脆弱性のうち、およそ半分が公開から24時間以内に悪用され始める、とされています。つまり、悪意ある更新を配信前に止める盾は、同時に、正規のセキュリティパッチが自動で届くのを同じだけ遅らせる壁でもあります。急いで塞ぎたい穴があるとき、その修正が24時間遅れるのは、痛い。
この痛みに対しては、緊急の場合は配信を早めてもらう連絡経路が用意されています。それでも、盾と壁が同じものだ、という事実は消えません。配信前の検査で守られる時間と、正規の修正が遅れて晒される時間は、同じ24時間の裏表です。そのうえで、買収された作者が正規経路でマルウェアを撒ける世界より、全員がいったん検査を通る世界のほうがましだ、というのが、いまの自分の答えです。
次の自分に渡すメモ
24時間保留を、配信が遅くなった不便、として受け取ると、本質を見落とします。これは、配信の信頼の初期値が下がった、という話でした。コミット権を持つ人は信頼できる、という前提が、買収という手口で壊れた。だから、作者を信頼する前提を外して、配信の手前で全員を検査する。自分のコミットも、その検査の対象です。
疑われるのは、気分のいいものではありません。でも、自分のコードに35件の穴を見つけてきた身としては、疑われる初期値のほうが、たぶん正しい。AIの出力を外部入力として疑うのと同じ目で、配信側はいま、人間の作者のコミットを疑い始めた。その目の中に、自分も入っている。それを不名誉ではなく、当然のことだと思えるかどうか。次に「約24時間後に配信されます」のメッセージを見たときの自分が、また操作ミスを疑って慌てないように、ここに書いておきます。あの24時間は、自分のプラグインのユーザーが守られている時間です。
出典
数字や仕様は最新を公式で確認してください。
Discussion