CVE-2024-0710
- Vulnerabilità: CVE-2024-0710 (Modifica non autenticata dell'ID univoco di invio del modulo)
- CVSS: 5.3 (Medio)
- Software: GP Unique ID (gp-unique-id)
- Versioni interessate: <= 1.5.5
- Versione corretta: 1.5.6
- Sviluppatore: Gravity Wiz
- Ricercatore: Karl Emil Nikka, Nikka Systems
- Pubblicato pubblicamente: 2024-04-10
- Ultimo aggiornamento: 2024-04-18
Panoramica
Un mittente di modulo non autenticato può scegliere un valore personalizzato per un campo che dovrebbe sempre avere un valore casuale o sequenziale. Questa vulnerabilità colpisce solo i siti in cui il valore deve essere casuale o sequenziale per motivi legali, funzionali o di sicurezza.
Contesto
GP Unique ID è un componente aggiuntivo per Gravity Forms. Assegna ID univoci alle voci dopo l'invio riuscito. A differenza degli ID reali del database delle voci, gli ID univoci GP, d'ora in poi chiamati GPUID, possono essere personalizzati dal creatore del modulo per seguire una sintassi specifica con numero iniziale, set di caratteri, lunghezza, prefisso e suffisso definiti. Il GPUID è memorizzato in un campo personalizzato delle voci di Gravity Forms. Il campo è nascosto nel frontend.
Lo sviluppatore del plugin elenca i seguenti casi d'uso comuni per GP Unique ID.
- Fornire un numero di conferma o riferimento di lunghezza fissa per ogni voce.
- Mantenere un numero di fattura sequenziale.
- Generare un codice coupon unico che può essere utilizzato in successive sottomissioni del modulo.
- Generare un numero univoco per l'uso in estrazioni a sorte.
La vulnerabilità
GP Unique ID assegna il GPUID dopo che il modulo è stato inviato con successo, ma solo finché non c'è già un valore nel campo. Ciò consente a un mittente del modulo di impostare un GPUID personalizzato durante l'invio. Poiché il campo non è vuoto, nessun GPUID reale viene memorizzato. Un visitatore può quindi:
- impostare un GPUID che non segue la sintassi
- impostare un GPUID che non è sequenziale
- impostare un GPUID che non è casuale
- impostare un GPUID che è già assegnato a un'altra voce.
Patch
Gravity Wiz ha rilasciato una versione corretta del plugin il 2024-04-09. Gli amministratori del sito dovrebbero aggiornare alla versione corretta (1.5.6) e, se pertinente, assicurarsi che le sottomissioni precedenti non siano state alterate.
- 2024-01-13 Ho segnalato la vulnerabilità a Gravity Wiz (secondo la politica di divulgazione responsabile di 90 giorni di Project Zero).
- 2024-01-13 Ho inviato la vulnerabilità al CNA di Wordfence. Ho rifiutato di partecipare al loro programma bug-bounty.
- 2024-01-15 Gravity Wiz ha confermato di aver ricevuto il rapporto.
- 2024-01-16 Gravity Wiz ha riconosciuto la vulnerabilità e mi ha detto che avrebbero rilasciato una patch.
- 2024-01-19 Wordfence ha assegnato alla vulnerabilità l'ID CVE CVE-2024-0710.
- 2024-02-29 Ho inviato un promemoria di 45 giorni a Gravity Wiz.
- 2024-04-01 Ho inviato un promemoria che la finestra di divulgazione responsabile di 90 giorni sarebbe terminata tra due settimane.
- 2024-04-07 Gravity Wiz mi ha inviato una versione pre-release del plugin corretto.
- 2024-04-09 Gravity Wiz ha rilasciato il plugin corretto, 87 giorni dopo il rapporto iniziale (entro la finestra di divulgazione responsabile di 90 giorni).