Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-89274-wp-recipe-maker-poc — CVE-2026-89274 の Docker 検証ラボおよび Python PoC。WP Recipe Maker <= 10.8.1 において、rating-comment の reviewBody を介した任意のショートコード実行を実証する。 | Kitploit
ツール/GitHubGitHub/hassham1/cve-2026-89274-wp-recipe-maker-poc
脆弱性スキャナー脆弱性分析エクスプロイトウェブアプリケーション悪用セキュリティ仮想化ウェブセキュリティペネトレーションテストラボと実践
GitHub
hassham1/cve-2026-89274-wp-recipe-maker-poc

CVE-2026-89274-wp-recipe-maker-poc

CVE-2026-89274 の Docker 検証ラボおよび Python PoC。WP Recipe Maker <= 10.8.1 において、rating-comment の reviewBody を介した任意のショートコード実行を実証する。

リポジトリを見る
1日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有

CVE-2026-89274 - WP Recipe Maker 任意ショートコード実行 検証ラボ

CVE-2026-89274 を再現・検証するためのセキュリティリサーチ資料: WP Recipe Maker <= 10.8.1 は、承認された評価コメント経由で仕込まれた レシピの JSON-LD メタデータ内で、登録済みの任意の WordPress ショートコードを実行する。

  • 影響を受けるバージョン: WP Recipe Maker <= 10.8.1
  • 修正済み: 10.8.2 (do_shortcode が strip 専用の do_shortcode_safe に置き換え)
  • CVSS 3.1: 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N) - CWE-94
  • 認証: 不要。ただし攻撃者の評価コメントが、注入されたショートコードが ページ読み込み時に実行され始める前に、サイトのコメント承認しきい値 (自動承認またはモデレーターの操作) を通過する必要がある

自身が所有するシステム、または明示的にテストを許可されたシステムでのみ使用すること。 この PoC は、ラボで登録されたマーカーショートコードを含む評価コメントを 1 件投稿する。 破壊的なショートコードは使用せず、ディスクへの書き込みも行わない。

判定

ステータス: 提供されたラボで実証済み。

WP Recipe Maker 10.8.1 (WordPress 7.1.2、デフォルトのレシピカードモデル):

root@kitploit:~
comment posted : "[cve89274]" + wprm-comment-rating=5 on the recipe's parent post
result         : JSON-LD on the rendered page contains
                 "reviewBody":"CVE89274-SHORTCODE-FIRED"
                 (marker shortcode executed server-side at render time)
10.8.2         : shortcode stripped, marker absent (patched negative control)

これは、出力がページメタデータに埋め込まれ、すべての訪問者に開示される、 登録済みの任意のショートコードのサーバーサイド実行を実証する。RCE を 実証するものではなく、影響はターゲットに登録されているショートコード (投稿/メタ情報の露出、副作用を持つプラグイン提供のショートコード) に依存する。

根本原因 (10.8.2 の修正に対して検証済み)

WPRM_Metadata::sanitize_metadata() は、レシピの構造化メタデータ配列の すべてのスカラーフィールドを再帰的にサニタイズする:

root@kitploit:~
// includes/public/class-wprm-metadata.php:553, WP Recipe Maker 10.8.1
$sanitized = strip_shortcodes( wp_strip_all_tags( do_shortcode( $metadata ) ) );

// 10.8.2
$sanitized = strip_shortcodes( wp_strip_all_tags( WPRM_Instacart::do_shortcode_safe( $metadata ) ) );

do_shortcode() は最初にショートコードを実行し、strip_shortcodes() ラッパーは既に実行された出力からタグを削除するだけである。フィールドの 1 つである reviewBody は、wprm-comment-rating メタ値を持つ承認済み コメントの comment_content からそのまま設定され (class-wprm-metadata.php:1016)、レシピの 親投稿 (post_id => $recipe->parent_post_id()、973 行目) — レシピカードが 埋め込まれている投稿またはページ — に対してクエリされる。

10.8.2 の置き換えである WPRM_Instacart::do_shortcode_safe() (class-wprm-instacart.php:501) は、内部コンテンツのみを保持し、 何も実行しない。

悪用フロー (検証済み)

  1. レシピの親投稿 ([wprm-recipe] を埋め込んでいる投稿/ページ) を対象とする。
  2. 本文にショートコードを含め、wprm-comment-rating=5 を付けて /wp-comments-post.php にコメントを POST する。
  3. コメントがサイトの承認しきい値を通過する (ラボでは自動承認。 実際のターゲットでは: 自動承認またはモデレーター)。
  4. 親ページの次回以降のすべてのレンダリングで、メタデータビルダーが そのコメントを JSON-LD の review 配列に含め、 sanitize_metadata() がショートコードを実行する。その出力が reviewBody 内のコメントテキストを置き換え、すべての訪問者に 表示される。

クイックスタート

要件: Docker (Compose v2 付き)、ホスト上の Python 3.10+。

root@kitploit:~
./lab verify

10.8.1 ラボをビルドし、マーカーの発火を要求した後、10.8.2 ラボを ビルドし、その不在を要求する。すべてを削除するには ./lab reset を 実行する。

期待されるエビデンス

脆弱性コントロール:

root@kitploit:~
[!!!] SHORTCODE EXECUTION CONFIRMED
  evidence: 'CVE89274-SHORTCODE-FIRED' present in the rendered recipe page
  context : ..."reviewBody":"CVE89274-SHORTCODE-FIRED","author":...
RESULT: VULNERABLE CONTROL CONFIRMED

修正済みコントロール:

root@kitploit:~
[=] shortcode text present but NOT executed: output was stripped
RESULT: PATCHED CONTROL CONFIRMED

ページ内で表示されたコメント (生テキスト) の中にのみマーカーが存在する 場合は証明として認められない。マーカーはメタデータ内で実行済み出力と して現れなければならない。

手動ラボライフサイクル

root@kitploit:~
./lab start vulnerable   # 10.8.1 lab on http://127.0.0.1:9482
./lab test               # assert marker fires
./lab start patched      # 10.8.2 lab
./lab test               # assert absence
./lab status
./lab reset

PoC を手動で実行する (デフォルトはループバック。許可された外部 ターゲットには明示的なオーバーライドが必要):

root@kitploit:~
python3 poc/poc_cve_2026_89274.py --url http://127.0.0.1:9482 --post-id 5
python3 poc/poc_cve_2026_89274.py --url https://target.example \
  --allow-authorized-non-loopback [--insecure]

nuclei テンプレート (nuclei/cve-2026-89274.yaml) はバージョンスクリーン のみである (readme.txt の stable タグ <= 10.8.1)。動作チェーンには コメント送信と承認遷移が必要であり、nuclei で表現するのは現実的では ない。Python PoC がフロー全体を実行する。

影響を受けるバージョンとテスト済みバージョン

バージョン評価
WP Recipe Maker 10.8.1ショートコード実行をエンドツーエンドで再現
WP Recipe Maker 10.8.2修正済みネガティブコントロールを再現
WP Recipe Maker <= 10.8.0アドバイザリにより影響を受ける。個別には未テスト

リポジトリ構成

root@kitploit:~
.
├── .github/workflows/validate.yml
├── .gitignore
├── LICENSE
├── README.md
├── SECURITY.md
├── docker-compose.yml
├── lab
├── nuclei/
│   └── cve-2026-89274.yaml
└── poc/
    └── poc_cve_2026_89274.py

コミット対象外: assets/ (プラグインの zip)、.lab-state、__pycache__/。

検証範囲

主張ステータス
評価コメントの reviewBody 経由のショートコード実行実証済み (10.8.1)
実行出力がレンダリングされた JSON-LD 内で開示される実証済み
修正済みネガティブコントロール (10.8.2)実証済み
デフォルト設定 (非公開レシピ CPT + 親投稿)実証済み (これがラボのトポロジー)
公開レシピ投稿タイプ設定未テスト
代替エントリとしての WPRM 自身の評価 REST エンドポイント未テスト
登録済みショートコード出力を超える影響 (RCE)主張せず

参考文献

  • Wordfence: CVE-2026-89274
  • NVD entry
  • WP Recipe Maker plugin

安全境界

このリポジトリは、自身が所有するシステム、または明示的にテストを許可 されたシステムでのみ実行すること。ラボドライバーは vulnerable/ patched 以外のバリアントを拒否し、PoC は --allow-authorized-non-loopback が指定されない限り非ループバック ターゲットを拒否し、Compose ポートは 127.0.0.1 にバインドされる。

開示の取り扱いについては SECURITY.md を参照。この リポジトリには、本番ターゲット、顧客データ、アクセストークン、実際の システムからのエビデンスは含まれない。

ライセンス

MIT - LICENSE を参照。

ツールをダウンロード