WordPressのブロックエディタを拡張するプラグイン「Arkhe Blocks」。アコーディオンやタブ、ステップ、タイムラインなど便利なブロックが無料で使えることから、多くのサイトで導入されていました。
しかしこのプラグインの無料版は、現在WordPress.orgでの公開が停止されており、新規にインストールすることができません。この記事では、その正確な経緯と、今からでも同じような機能を安全に使うための代替手段を解説します。
公開停止の経緯(CVE-2025-32161)
Arkhe Blocksのバージョン2.27.1以前には、格納型クロスサイトスクリプティング(XSS)の脆弱性が存在することが確認されました(CVE-2025-32161として登録)。
何が起きていたのか
簡単に言うと、「投稿権限を持つユーザー(管理者だけでなく、記事を書ける人なら誰でも)が、悪意を持って細工したコードを投稿内に仕込めてしまう」という欠陥です。
本来であれば、投稿内に入力された内容は「ただの文字」として無害化されて表示されるはずです。ところがArkhe Blocksには、この無害化処理(サニタイズ・エスケープ)に漏れがありました。その結果、仕込まれたコードがそのまま「実行可能なプログラム」としてページに埋め込まれてしまいます。
具体的にどんな被害につながるのか
- サイトを訪れた別のユーザー(管理者を含む)のブラウザで、勝手にスクリプトが実行される
- ログイン中の管理者がそのページを開いた瞬間、管理者権限を乗っ取られる
- サイトの見た目を改ざんされたり、訪問者を詐欺サイトへ誘導されたりする
「投稿者権限があれば誰でも」という点も重要です。攻撃するのに管理者権限までは要りません。複数人で運営しているサイトや、外部ライターに投稿権限だけ渡しているようなサイトでは、特に注意が必要な脆弱性でした。
現在の状況
この脆弱性を理由に、2025年4月1日付けでWordPress.orgでの配布が停止されています。修正パッチが提供された形跡はなく、今後の対応も見通しが立っていません。
「直接ダウンロードすれば使える」は避けるべき
WordPress.orgで配布停止になったプラグインでも、過去のバージョンのZIPファイルがアーカイブに残っていることがあり、それを直接ダウンロードして手動インストールする方法を紹介している記事も見かけます。
ですが今回のケースでは、配布停止の理由がまさにセキュリティの脆弱性です。過去バージョンを直接ダウンロードしても、脆弱性が修正されているわけではありません。この方法はおすすめしません。
無料版で使えていた機能を、安全に代替する
Arkhe Blocksの無料版でよく使われていた機能と、その代替手段を整理しました。
| Arkhe Blocksの無料機能 | 代替手段 | Lazy Blocks 無料版/Pro版 |
|---|---|---|
| アコーディオン・Q&A | Lazy Blocksで自作(HTML標準の<details>タグで軽量に実装可能) |
無料版で可能 |
| タイムライン | Lazy Blocksで自作(Repeaterで年表形式を再現) | 無料版で可能 |
| ステップ | Lazy Blocksで自作 | 無料版で可能 |
| 目次 | 目次専用プラグイン、またはテーマ標準機能で代替可能なケースが多い | (Lazy Blocks対象外) |
上記はすべて、Lazy BlocksのRepeater(繰り返しフィールド)とText・Textareaといった基本コントロールだけで組めるため、無料版だけで完結します。 Pro版が必要になるのは、条件分岐で入力欄を出し分けたい場合や、投稿・カテゴリと連携させたい場合など、より高度な使い方をする時だけです。
Arkhe Blocks全17ブロックとの詳細対応表
もっと詳しく知りたい方向けに、Arkhe Blocksの無料版・Pro版全ブロックと、Lazy Blocksでの実現可否を対応させました。
| Arkhe Blocks | Arkhe無料版 | Arkhe Pro版 | Lazy Blocksでの実現 |
|---|---|---|---|
| アコーディオン | ◯ | ◯ | 無料版で可能(<details>タグで自作) |
| コンテナ | ◯ | ◯ | コアの「グループ」ブロックで代替可能(Lazy Blocks不要) |
| Q&A | ◯ | ◯ | 無料版で可能(アコーディオンと同様の構造) |
| 説明リスト | ◯ | ◯ | 無料版で可能(Repeater+Textで自作) |
| 目次 | ◯ | ◯ | 目次専用プラグインの利用を推奨(Lazy Blocks対象外) |
| 通知 | ◯(一部制限) | ◯ | 無料版で可能(メッセージボックス的なブロックとして自作) |
| セクション | ◯(一部制限) | ◯ | コアの「グループ」「カバー」ブロックで代替可能なことが多い |
| セクション見出し | ◯ | ◯ | テーマの見出し装飾機能で代替できるケースが多い |
| タブ | ◯(一部制限) | ◯ | 無料版で可能(ただしJS実装がやや複雑) |
| ステップ | ◯(一部制限) | ◯ | 無料版で可能(Repeaterで自作) |
| タイムライン | ◯(一部制限) | ◯ | 無料版で可能(Repeaterで自作) |
| ブログカード | ◯(一部制限) | ◯ | 手動入力のカードなら無料版で可能。実際の投稿と自動連携させるならPro版のPostsコントロールが必要 |
| リッチカラム | ◯(一部制限) | ◯ | コアの「カラム」ブロックで代替可能なことが多い |
| ボックスリンク | × | ◯ | 無料版で可能(URL・Text・Imageコントロールで自作) |
| スライダー | × | ◯ | 無料版で可能(ただしJS実装が必要でやや高度) |
| 制限エリア | × | ◯ | ログイン状態での出し分け程度なら、PHPの条件分岐(is_user_logged_in())で無料版でも対応可能。細かい条件分岐が必要ならPro版のConditions機能 |
| 投稿リストブロック | × | ◯(Arkheテーマのみ) | 実際の投稿データと連携させるにはPro版のPostsコントロールが必要 |
こうして見ると、17ブロック中10種類は無料版だけで代替でき、レイアウト系(コンテナ・セクション・リッチカラム等)はそもそもWordPress標準のコアブロックで十分というケースも多いです。Pro版が本当に必要になるのは、投稿データとの自動連携(ブログカード・投稿リスト)くらいに絞られます。
実際に作ってみました
言葉だけでは伝わりにくいので、Lazy Blocksの無料版だけで実際に作った6ブロックのサンプルを並べてみます。
アコーディオン/Q&A
タイムライン
通知
ステップ
説明リスト
ボックスリンク
いずれもLazy Blocksの無料版だけで作った実物です。同じものを一からコードを書かずに、そのままインポートして使える形にまとめたものを無料配布しています。
これらはすべてLazy Blocksという無料プラグインで、ブロックとして一から作成できます。しかも脆弱性の懸念がある古いプラグインに頼る必要がありません。
FAQ(アコーディオン/Q&A)
Arkhe Blocksのアコーディオン・Q&Aに相当する機能です。HTML標準の<details>タグを使っているためJS不要で軽量に動作し、質問一覧ごとにschema.orgのFAQPage構造化データ(JSON-LD)を出力するかどうかも切り替えられます。
QArkhe Blocksの無料版は今からインストールできますか?
Q既存サイトで使っているArkhe Blocksはすぐ止まりますか?
QLazy Blocksへの移行は難しいですか?
説明リスト
用語と説明をペアで並べる、Arkheの説明リストに相当する機能です。横並び(インライン)と縦積みの2つの表示形式を選べます。
- CVE-2025-32161
- Arkhe Blocksの格納型XSS脆弱性に割り振られた識別番号です。
- 格納型XSS
- 悪意あるコードがサーバーに保存され、閲覧時に実行されてしまう脆弱性の一種です。
通知
3スタイル(シンプル・塗りつぶし・ボーダー太め)×5タイプ(情報・成功・警告・エラー・ポイント)を組み合わせられる通知ブロックです。
直接ダウンロードは避けてください
過去バージョンのZIPを入手できても、脆弱性は修正されていません。
ステップ
手順や段階を説明するブロックです。デフォルト・大・カード型の3スタイルがあり、ステップごとにアクセントカラーも変更できます。
現状を確認する
Arkhe Blocksを使っているか、バージョンはいくつかを確認します。
現状を確認する
今回紹介した6つの無料ブロックから、使っている機能に対応するものを選びます。
置き換えて無効化する
代替ブロックの設置を確認したら、Arkhe Blocksを無効化・削除します。
沿革・年表
時系列に沿った出来事を表示するブロックです。Arkheのタイムライン(縦型)に相当します。
Arkhe Blocksを取り巻く経緯
- 2024年以前 多くのサイトでアコーディオン・タブ・ステップ等の無料機能として利用されていた
- 2025年4月1日 CVE-2025-32161(格納型XSS)を理由にWordPress.orgでの配布が停止
- 2026年 修正パッチは提供されず、代替手段への移行が推奨される状況が続く
ボックスリンク
画像・タイトル・説明文をひとまとめにしてリンク化するブロックです。デフォルト(縦積み)とバナー風(横並び)の2レイアウトがあります。
無料版では作らなかった4つの機能
Arkhe Blocksの無料版には、今回あえて代替を作らなかった機能もあります。理由と合わせて紹介します。
ここで紹介したブロックの作り方は、Lazy Blocks使い方完全ガイド【日本語決定版】インストールからPro機能までで一から解説しています。
| 機能 | 作らなかった理由 |
|---|---|
| タブ | クリック状態の管理・アクセシビリティ対応(ARIA属性)が絡み、JSがそれなりの量になるため |
| スライダー | カルーセルのJS実装(スワイプ対応・自動再生・ドットナビ等)が重く、シンプルな出力コードでは肥大化しやすいため |
| 制限エリア | ログイン状態だけの単純な出し分けなら無料版でも対応できるが、複数条件(会員ランク別など)を柔軟に設定したい場合は条件分岐機能が必要なため |
| 投稿リストブロック | 実際の投稿データと連携させるには、投稿を選択できる専用の仕組みが本質的に必要なため |
これら4つは、Lazy Blocks Proの機能を使って、別途しっかり作り込んだ形で用意しています。 無料版の代替では対応しきれない部分なので、正直にPro版側で対応することにしました。
タブ(Pro)
クリックで表示内容を切り替えられるタブブロックです。ARIA属性に対応し、スタイルは2種類(標準・アンダーライン)から選べます。
スライダー(Pro)
画像を切り替えて表示するスライダーブロックです。自動再生のON/OFF・切り替え間隔を設定できます。
制限エリア(Pro)
ログイン状態や権限に応じて、内側に配置したブロックの表示・非表示を切り替えられるブロックです。
投稿リスト(Pro)
指定したカテゴリの最新記事を自動で一覧表示するブロックです。サムネイル・抜粋文の表示有無を切り替えられます。
既にArkhe Blocksを使っているサイトの場合
既にインストール済みで動作しているサイトは、プラグイン自体がすぐに動かなくなるわけではありません。ただし脆弱性を抱えたまま運用を続けることになるため、優先度をつけて、上記のような代替ブロックへの置き換えを計画的に進めることをおすすめします。

