
CVE 2022-45299
#Libreria interessata:
webbrowser.rs prima della versione 0.8.3 https://github.com/amodm/webbrowser-rs
#Sommario:
La libreria non valida che l'input fornito sia effettivamente un URL. Un attaccante che controlla un URL non filtrato passato a webbrowser::open(URL) può, quindi, fornire un percorso di file locale che verrà aperto nell'explorer predefinito oppure passare un argomento al comando open sottostante per eseguire comandi di sistema arbitrari registrati.
#Dettagli:
webbrowser::open chiama internamente shellExecuteW passando l'URL come argomento a open su Windows. Su Windows, l'attaccante controlla l'argomento lpFile di shellExecuteW, il che può consentire l'apertura di file locali arbitrari. Se un attaccante riesce a passare un URL che in realtà è un'opzione della riga di comando per open, potrebbe essere in grado di lanciare comandi arbitrari (o fare tutto ciò che open consente di fare con un argomento). Ad esempio, webbrowser::open(".") aprirà Finder nella directory di lavoro corrente. Inoltre, è possibile eseguire script Python semplicemente fornendo il percorso dello script e sono riuscito a farlo con qualsiasi altro linguaggio, compilato o interpretato. Non sono riuscito a riprodurre il problema su Linux, ma file locali come /etc/passwd possono essere caricati semplicemente fornendo il percorso del file.
#codice vulnerabile:

#POC:
