
🎩 🤟🏻 [P1-$10,000] Google Chrome, Microsoft Edge e Opera - vulnerabilità segnalata da Maciej Pulikowski - Perdita di variabili d'ambiente di sistema - CVE-2022-0337
Lo sfruttamento riuscito di questa vulnerabilità può portare alla fuga dei segreti dell'utente memorizzati nelle variabili d'ambiente di sistema. È stato trovato un bug di sicurezza nella versione 92 di Chromium e corretto nella versione 97. Esistono diversi browser basati sul motore Chromium, ad esempio Google Chrome, Microsoft Edge, Opera e Brave. Tutti erano vulnerabili, tranne Brave. La vulnerabilità si trova nell'API File System Access, più precisamente nel metodo window.showSaveFilePicker().
Versione CVE: CVE-2022-0337
Crediti: Maciej Pulikowski
Premio:
Controlla la versione del tuo browser web:
chrome://version/edge://version/opera://updateSOLO WINDOWS è vulnerabile. Linux e Mac sono sicuri.
Grazie per i like e le iscrizioni 😀👍

let a = await window.showSaveFilePicker({suggestedName:'%username%'});
a.name;
Nell'esempio viene utilizzata la variabile d'ambiente %username%. Restituisce il nome utente Windows con cui si è effettuato l'accesso. Inoltre, ci sono molte altre variabili d'ambiente interessanti:
Ecco alcuni esempi:
e molte altre...
Quindi l'attaccante potrebbe ottenere l'accesso ai servizi AWS della vittima, all'account Github, al token API di Binance (prelevare denaro) e altro ancora...
Scopri altri segreti nelle variabili d'ambiente nel mio repository:
L'esempio precedente viene eseguito nei DevTools locali di Google Chrome.
Ovviamente, un attaccante potrebbe creare un file HTML apposito (sito web) per sfruttare con successo questa vulnerabilità.
env.html è un esempio di HTML appositamente creato nel repository.
Ma è davvero necessario che l'utente scarichi un file?
Sì, tuttavia, l'attaccante può creare un sito web per incoraggiare l'utente a tenere premuto il pulsante ENTER sulla tastiera per 2 secondi per eseguire e accettare la finestra di dialogo di salvataggio del file. Poiché la finestra di dialogo di Windows mette il focus sul pulsante Salva per impostazione predefinita, il file verrà salvato in un batter d'occhio.
*.gif è di Opera (Chrome ed Edge erano già stati corretti)
In conclusione, l'utente, dopo aver tenuto premuto il pulsante ENTER sulla tastiera per 2 secondi, potrebbe causare la fuga delle sue variabili d'ambiente di sistema. Questo è un problema significativo perché l'utente potrebbe memorizzare segreti importanti nelle variabili d'ambiente di sistema, ad es. l'accesso ai suoi servizi AWS, all'account Github o a Binance
Mi sono dato la sfida di riparare il bug. Qui vorrei sottolineare che non sono uno sviluppatore C++ 😎.
Una delle soluzioni era semplicemente sostituire il carattere % in suggestedName con _ . Questo dovrebbe risolvere il problema.

potrebbe essere inserito in:
e i risultati sono:


In effetti ha risolto il problema, ma non era il posto migliore in cui inserire il codice 😋. Tuttavia, sono stato molto felice di riuscire a ripararlo da solo 😎
La correzione finale si trova qui:
Questo progetto può essere utilizzato solo per scopi educativi. L'uso di questo software contro sistemi target senza previa autorizzazione è illegale e l'autore non sarà responsabile di eventuali danni derivanti dall'uso improprio di questo software.