Gradio · Gradio · CVE-2024-51751
**Nome do software vulnerável e versões afetadas**
Versões do Gradio anteriores à 5.5.0
**Descrição**
A vulnerabilidade permite que um invasor com acesso ao aplicativo abuse dos componentes `File` ou `UploadButton` e leia arquivos arbitrários do servidor do aplicativo. Isso é possível porque não há garantia de que a função `client utils.is file obj with meta` seja acionada para todas as entradas que contenham um caminho de arquivo, permitindo que um invasor controle o caminho e leia arquivos. A vulnerabilidade pode ser explorada enviando uma solicitação ao endpoint da API `/gradio api/run/predict` com uma carga útil especialmente criada. Por exemplo, um invasor pode enviar uma solicitação com o parâmetro `path` definido como `/etc/passwd` para ler o conteúdo do arquivo `/etc/passwd`. A função `processing utils.async move files to cache` é usada para sanitizar caminhos de arquivos recebidos, mas depende da função `client utils.is file obj with meta` para filtrar entradas, o que pode ser contornado.
**Recomendações**
Para versões do Gradio anteriores à 5.5.0, atualize para a versão 5.5.0 para resolver o problema. Como solução alternativa temporária, considere restringir o acesso aos componentes `File` e `UploadButton` para minimizar o risco de exploração. Evite usar o parâmetro `path` no endpoint da API afetado até que o problema seja resolvido.