CVE-2026-59952
Riassunto
di VulDB • 30/07/2026
Valibot aiuta a convalidare i dati utilizzando uno schema. Le versioni precedenti alla 1.4.2 possono generare un errore di tipo (TypeError) all'interno del suo helper `flatten()` quando gli errori di validazione contengono chiavi di oggetto controllate dall'attaccante, come `toString`, `valueOf` o `hasOwnProperty`. Il problema è raggiungibile tramite la normale convalida `record()`. La funzione `record()` filtra intenzionalmente le chiavi `__proto__`, `prototype` e `constructor`, ma accetta comunque altre proprietà proprie che entrano in collisione con le proprietà ereditate di `Object.prototype`. Se lo schema della chiave o dello schema del valore per la record rifiuta tale voce, Valibot crea un percorso dell'errore contenente quella chiave. Il passaggio degli errori risultanti all'helper documentato `flatten()` di Valibot fa sì che `flatErrors.nested[dotPath]` risolva il metodo ereditato invece di una propria matrice di errore, e l'helper chiama `.push(...)` su tale funzione. Questo non è un problema globale di prototype pollution. L'impatto riguarda la disponibilità/gestione degli errori: le applicazioni che convalidano oggetti controllati dall'utente tramite `record()` e appiattiscono gli errori di validazione per le risposte API possono causare il crash del percorso della richiesta con un TypeError invece di restituire errori di strutturati. Questo problema è stato risolto nella versione 1.4.2.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.