
CVE 2022-45299
#Biblioteca Afetada :
webbrowser.rs antes da versão 0.8.3 https://github.com/amodm/webbrowser-rs
#Resumo:
A biblioteca não valida se a entrada fornecida é realmente uma URL. Um atacante que controla uma URL não filtrada passada para webbrowser::open(URL) pode, portanto, fornecer um caminho de arquivo local que será aberto no explorador padrão ou passar um argumento para o comando open subjacente para executar comandos arbitrários registrados no sistema.
#Detalhes:
webbrowser::open internamente chama shellExecuteW passando a URL como um argumento para open no Windows. No Windows, o atacante controla o argumento lpFile para shellExecuteW, o que pode permitir abrir arquivos locais arbitrários. Se um atacante conseguir passar uma URL que seja na verdade uma opção de linha de comando para open, ele pode ser capaz de lançar comandos arbitrários (ou fazer o que open permitir com um argumento). Por exemplo, webbrowser::open(".") abrirá o Finder no diretório de trabalho atual. Além disso, você pode executar scripts python apenas fornecendo o caminho para o script e consegui fazer isso com qualquer outra linguagem compilada ou de script. Não consegui reproduzir o problema no linux, mas arquivos locais como /etc/passwd podem ser carregados apenas fornecendo o caminho para o arquivo.
#código vulnerável:

#Prova de Conceito:
