
CVE 2022-45299
#Biblioteca afectada :
webbrowser.rs antes de la versión 0.8.3 https://github.com/amodm/webbrowser-rs
#Resumen:
La biblioteca no valida que la entrada proporcionada sea realmente una URL. Por lo tanto, un atacante que controle una URL sin filtrar pasada a webbrowser::open(URL) puede proporcionar una ruta de archivo local que se abrirá en el explorador predeterminado o pasar un argumento al comando open subyacente para ejecutar comandos registrados arbitrarios del sistema.
#Detalles:
webbrowser::open internamente llama a shellExecuteW pasando la URL como argumento a open para Windows. En Windows, el atacante controla el argumento lpFile de shellExecuteW, lo que puede permitir abrir archivos locales arbitrarios. Si un atacante logra pasar una URL que en realidad es un conmutador de línea de comandos para open, podría lanzar comandos arbitrarios (o hacer lo que open le permita hacer con un argumento). Por ejemplo, webbrowser::open(".") abrirá Finder en el directorio de trabajo actual. También puede ejecutar scripts de Python simplemente proporcionando la ruta al script y logré hacerlo con cualquier otro lenguaje compilado o de scripting. No pude reproducir el problema en Linux, pero archivos locales como /etc/passwd pueden cargarse simplemente proporcionando la ruta al archivo.
#código vulnerable:

#PoC:
