Falhas do tipo CWE-616

10 resultados

Identificação incompleta de variáveis de arquivo enviado (PHP)

Em PHP, quando o código não valida ou identifica corretamente quais variáveis contêm arquivos enviados pelo usuário, um atacante pode explorar variáveis não esperadas para fazer upload de arquivos maliciosos. O problema ocorre quando o desenvolvedor assume que apenas certas variáveis ($_FILES['campo_esperado']) são usadas, mas não bloqueia ativamente outras variáveis que podem ser injetadas ou manipuladas.

Exemplo

Um formulário espera upload em $_FILES['documento'], mas o código não valida outros índices de $_FILES. Um atacante monta uma requisição POST com $_FILES['arquivo_oculto'] e consegue fazer upload de um shell PHP para o servidor, porque o código nunca verificou ou rejeitou explicitamente essa variável.

Como mitigar

Liste explicitamente quais campos de upload são permitidos e rejeite qualquer outro; valide extensão, tipo MIME e conte o número de arquivos enviados; use whitelist de nomes de variáveis esperadas antes de processar $_FILES.