Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-11991-Exploit — # Exploit automatizzato per CVE-2026-11991, un bypass dell'autorizzazione nel plugin WordPress FlowForms che consente agli utenti Contributor+ di pubblicare qualsiasi modulo in bozza tramite richieste REST API appositamente costruite. | Kitploit
Strumenti/GitHubGitHub/0x00phantom-hat/cve-2026-11991-exploit
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration TestingApprendimento e Formazione
GitHub0x00phantom-hat/cve-2026-11991-exploit

CVE-2026-11991-Exploit

# Exploit automatizzato per CVE-2026-11991, un bypass dell'autorizzazione nel plugin WordPress FlowForms che consente agli utenti Contributor+ di pubblicare qualsiasi modulo in bozza tramite richieste REST API appositamente costruite.

Vedi Repository
311 mese faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-11991 — Pubblicazione Non Autorizzata di Moduli in FlowForms

Bypass dell'Autorizzazione (Contributor+) per Pubblicare Qualsiasi Modulo Bozza in FlowForms ≤ 1.1.1

Panoramica della Vulnerabilità

ProprietàValore
ID CVECVE-2026-11991
Punteggio CVSS6.2 — Medio
Vettore CVSSAV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N/E:H/RL:O/RC:C
CWECWE-639 (Bypass dell'Autorizzazione tramite Chiave Controllata dall'Utente)
ProdottoFlowForms — Plugin WordPress per la Creazione di Moduli Conversazionali
Versioni AffetteTutte le versioni fino alla 1.1.1 inclusa
Corretta In1.1.2
RicercatorePhantom Hat

Analisi Tecnica

Caso di studio completo white-box con analisi del codice sorgente, tracciamento del flusso di input e confronto delle patch:

📄 Caso di Studio CVE-2026-11991 — Medium

Superficie d'Attacco

FlowForms espone una REST API sotto il namespace flowforms/v1. L'endpoint di pubblicazione:

POST /index.php?rest_route=/flowforms/v1/forms/{id}/publish

accetta un {id} controllato dall'utente nel percorso URL e promuove un modulo bozza al sito live.

Causa Principale

Il permission_callback per la rotta /publish esegue solo un controllo generico delle capacità:

register_rest_route($ns, '/forms/(?P<id>\d+)/publish', [
    'methods'             => 'POST',
    'callback'            => [$this, 'publish_form'],
    'permission_callback' => fn() => current_user_can('edit_posts'),
]);

edit_posts è una capacità posseduta dai Contributors — un ruolo che WordPress limita intenzionalmente dalla pubblicazione di contenuti. Non esiste alcuna verifica di proprietà rispetto al form_id di destinazione. Qualsiasi utente autenticato può pubblicare qualsiasi modulo bozza sul sito.

Flusso dell'Attacco

Attaccante (Contributor)              FlowForms REST API
        │                                   │
        │── POST /wp-login.php ────────────>│  (1) Autenticazione come Contributor
        │<─ cookie wordpress_logged_in ─────│
        │                                   │
        │── GET /wp-admin/post-new.php ────>│  (2) Raccolta del nonce REST
        │<─ wpApiSettings.nonce ────────────│
        │                                   │
        │── GET /flowform/{id} ────────────>│  (3) Enumerazione dei moduli bozza
        │<─ "Form Not Published" ───────────│      (risposta non autenticata)
        │                                   │
        │── POST /flowforms/v1/forms/       │  (4) Attivazione della pubblicazione su
        │        {id}/publish ─────────────>│      qualsiasi ID di modulo bozza
        │                                   │      ← nessun controllo di proprietà
        │<─ { "success": true } ────────────│
        │                                   │
        │   Il modulo è ora LIVE sul sito   │  (5) La bozza bypassa
        │   senza approvazione editoriale   │      il flusso di lavoro editoriale

Utilizzo dell'Exploit

Prerequisiti

  • Python 3.8+
  • Un account autenticato con almeno il ruolo Contributor sul sito di destinazione

Installazione

git clone https://github.com/0x00phantom-hat/CVE-2026-11991-FlowForms-Exploit
cd CVE-2026-11991-FlowForms-Exploit
pip install -r requirements.txt

Utilizzo Base

python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

Con Proxy (Burp Suite)

python3 CVE-2026-11991-exploit.py \
  --url http://TARGET \
  --proxy http://127.0.0.1:8080 \
  --user contributor \
  --password password123 \
  --num_forms 100 \
  --id_start 1

Riferimento Completo dei Flag

FlagDescrizioneObbligatorio
--urlURL WordPress di destinazione✅
--userNome utente WordPress (Contributor+)✅
--passwordPassword WordPress✅
--num_formsNumero di ID modulo da enumerare✅
--id_startID modulo iniziale per l'enumerazione✅
--proxyURL del proxy (es. http://127.0.0.1:8080)❌

Flusso di Lavoro dello Sfruttamento

L'exploit esegue tre passaggi automatizzati:

Passaggio 1 — Autenticazione Effettua il login come attaccante (Contributor) e raccoglie un nonce REST API valido da wp-admin.

Passaggio 2 — Enumerazione delle Bozze Scansiona GET /flowform/{id} nell'intervallo di ID specificato. I moduli che restituiscono "Form Not Published" vengono raccolti come obiettivi — si tratta di moduli bozza di cui l'attaccante non possiede la proprietà.

Passaggio 3 — Pubblicazione Invia POST /flowforms/v1/forms/{id}/publish con il nonce dell'attaccante. L'endpoint accetta la richiesta, promuove la bozza e rende il modulo live — senza alcun controllo di autorizzazione sulla proprietà.


Rimedio

AzioneDettagli
PatchSostituire il controllo generico edit_posts con current_user_can('edit_post', $form_id) — il secondo argomento vincola il controllo delle capacità all'oggetto post specifico, applicando le regole di proprietà di WordPress
MitigazioneFino alla correzione, limitare i ruoli Contributor e Author se il plugin è attivo

Implementazione Sicura

// VULNERABILE
'permission_callback' => fn() => current_user_can('edit_posts'),

// SICURO (corretto)
private function can_edit_form($form_id) {
    return current_user_can('edit_post', $form_id);
}
'permission_callback' => fn($request) => $this->can_edit_form(absint($request['id'])),

Riferimenti

Scarica lo strumento