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
Strumenti/GitHubGitHub/hann1bl3l3ct3r/cve-2026-4406
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebSicurezza WebPenetration Testing
GitHubhann1bl3l3ct3r/cve-2026-4406

CVE-2026-4406

Il plugin Gravity Forms per WordPress (testato fino alla versione 2.9.28) è vulnerabile a cross-site scripting (XSS) riflesso non autenticato tramite il parametro `form_ids` nell'azione AJAX `gform_get_config`.

Vedi Repository
196 mesi 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

Gravity Forms <= 2.9.28 — Cross-Site Scripting Riflesso Non Autenticato tramite il Parametro form_ids di gform_get_config

Riepilogo della Vulnerabilità

CampoValore
Software InteressatoGravity Forms (Plugin WordPress)
VendorRocketgenius, Inc.
Tipo di VulnerabilitàCWE-79: Neutralizzazione Impropria dell'Input Durante la Generazione di Pagine Web (Cross-Site Scripting Riflesso)
Catena CWECWE-20 → CWE-116 → CWE-838 → CWE-79 (vedi Analisi CWE di seguito)
Versioni InteressateConfermata sulla 2.9.28 (ultima al momento della scoperta); le versioni precedenti sono probabilmente interessate
Versione Correttiva2.9.30.1 (hotfix)
Punteggio CVSS 3.16.1 (Medio)
Vettore CVSS 3.1AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Autenticazione RichiestaNessuna (Non Autenticato)
Interazione dell'UtenteRichiesta (la vittima deve visitare una pagina controllata dall'attaccante o fare clic su un link appositamente creato)
Scoperta diAnthony Cihan — Obviam
Data della Scoperta2026-03-04
Data della Divulgazione2026-03-18
ID CVECVE-2026-4406

Registro Pubblico Wordfence


Descrizione

Il plugin Gravity Forms per WordPress (testato fino alla versione 2.9.28) è vulnerabile a cross-site scripting (XSS) riflesso non autenticato tramite il parametro form_ids nell'azione AJAX gform_get_config. La vulnerabilità esiste perché i valori form_ids forniti dall'utente vengono riflessi testualmente nella risposta HTTP del server senza alcuna sanificazione, codifica o escaping dell'output. La risposta viene servita con un'intestazione Content-Type: text/html; charset=UTF-8, che induce il browser a interpretare e renderizzare il contenuto riflesso come HTML, inclusi eventuali elementi script iniettati.

Un attaccante non autenticato può sfruttare questa vulnerabilità per eseguire JavaScript arbitrario nel contesto dell'origine del sito WordPress di destinazione. Poiché l'azione gform_get_config richiede un config_nonce valido, e questo nonce è incorporato pubblicamente nel sorgente HTML di ogni pagina che carica un modulo Gravity Forms, un attaccante può ottenere facilmente un nonce valido richiedendo qualsiasi pagina pubblica del sito di destinazione prima di costruire la richiesta di exploit.

Uno sfruttamento riuscito consente a un attaccante di rubare i cookie di sessione, eseguire azioni per conto di utenti autenticati (inclusi gli amministratori di WordPress), reindirizzare gli utenti verso siti dannosi, deturpare il contenuto delle pagine o stabilire un accesso persistente tramite la creazione di account amministrativi.


Analisi della Causa Radice

Endpoint Vulnerabile```

POST /wp-admin/admin-ajax.php

### Azione Vulnerabile```
gform_get_config

Parametro Vulnerabile

Il parametro POST args accetta un oggetto JSON contenente un array form_ids. I valori in questo array vengono utilizzati come chiavi di oggetto nella struttura della risposta JSON senza sanificazione:```json {"form_ids":["ATTACKER_CONTROLLED_VALUE"]}

### Comportamento della risposta

Il server elabora i valori di `form_ids` e li riflette come chiavi JSON all'interno del corpo della risposta. La risposta è racchiusa in marcatori di commento HTML e servita come `text/html`:```
Content-Type: text/html; charset=UTF-8

<!-- gf:json_start -->{"success":true,"data":{"common":{"form":{"pagination":{"ATTACKER_CONTROLLED_VALUE":null}}}}}<!-- gf:json_end -->

Perché Questo È Sfruttabile

  1. Nessuna Validazione dell'Input: I valori di form_ids non vengono validati come interi, sanitizzati o filtrati. Il server accetta contenuto stringa arbitrario, inclusi tag HTML e gestori di eventi.
  2. Nessuna Codifica dell'Output: I valori di form_ids vengono riflessi nel corpo della risposta senza codifica delle entità HTML. Caratteri come <, >, " e ' passano senza modifiche.
  3. Content-Type HTML: La risposta viene servita con Content-Type: text/html; charset=UTF-8, che istruisce il browser a interpretare il corpo della risposta come HTML. Qualsiasi tag HTML all'interno del valore riflesso viene istanziato e renderizzato dal parser HTML del browser.
  4. Nonce Pubblicamente Accessibile: Il config_nonce richiesto dall'azione gform_get_config è incorporato nell'oggetto di configurazione JavaScript (gform_theme_config) su ogni pagina che carica un modulo Gravity Forms. Questo nonce è identico su tutte le pagine e non è legato a una specifica sessione utente, rendendolo banalmente ottenibile da utenti non autenticati.

Analisi CWE

Questa vulnerabilità è il risultato di molteplici debolezze concorrenti che si concatenano per produrre la condizione sfruttabile. Sebbene CWE-79 sia la classificazione primaria ai fini della segnalazione CVE, l'intera catena documenta come ogni fallimento si combini per abilitare lo sfruttamento.

Catena di Debolezze```

CWE-20 CWE-116 CWE-838 CWE-79 Improper Input → Improper Encoding → Inappropriate Encoding → Cross-Site Validation or Escaping of Output for Output Context Scripting (XSS) [EXPLOITABLE] form_ids accepts Reflected values are JSON data served as Browser parses arbitrary strings not HTML-entity text/html instead of injected HTML tags instead of integers encoded in response application/json and executes JS

### CWE-20: Convalida dell'Input Impropria (Contributo)

**Ruolo:** Abilitatore principale — consente l'ingresso di dati dannosi nella pipeline di elaborazione.

Il parametro `form_ids` nell'oggetto JSON `args` dovrebbe contenere identificatori numerici di moduli, ma accetta input stringa arbitrari senza alcuna validazione. Non vengono applicati controlli di tipo (`intval()`), filtri regex (`^[0-9]+$`), confronti con una whitelist di ID modulo noti, né restrizioni sulla lunghezza.

**Evidenza:** Il server accetta ed elabora valori `form_ids` contenenti tag HTML, gestori di eventi JavaScript e Unicode arbitrario senza rifiutarli.```json
{"form_ids":["<svg onload=alert(1)>"]}    ← Accepted
{"form_ids":["3"]}                         ← Expected

CWE-116: Codifica o Escape dell'Output Impropri (Guasto Tecnico Primario)

Ruolo: Vulnerabilità principale — la causa diretta della condizione XSS.

Quando il server costruisce la risposta JSON contenente i valori form_ids, non applica la codifica delle entità HTML all'output. I caratteri con significato speciale in HTML (<, >, ", ', &) passano senza modifiche nel corpo della risposta. Le funzioni PHP htmlspecialchars(), esc_html(), wp_json_encode() con JSON_HEX_TAG, o funzioni equivalenti di codifica dell'output non vengono applicate ai valori form_ids prima che vengano scritti nella risposta.

Evidenza: La stringa letterale <svg onload=alert(document.domain)> appare nel corpo della risposta byte per byte identica all'input, anziché come &lt;svg onload=alert(document.domain)&gt;.

CWE-838: Codifica Inappropriata per il Contesto dell'Output (Aggravante)

Ruolo: Escalation del contesto — trasforma un problema di riflessione dei dati in un'iniezione di codice eseguibile.

Scarica lo strumento