Weaknesses of type CWE-42

1 result

Equivalência de caminho: ponto final no nome de arquivo

Alguns sistemas operacionais (especialmente Windows) tratam nomes de arquivo com ponto final como equivalentes ao mesmo arquivo sem o ponto. Um atacante explora isso para contornar validações de nome de arquivo ou extensão, acessando recursos bloqueados com um nome ligeiramente diferente (ex: 'documento.pdf.' para acessar 'documento.pdf').

Example

Uma aplicação web rejeita upload de arquivos '.exe' mas aceita '.exe.' (com ponto). Um atacante envia 'malware.exe.' que o servidor valida como seguro, mas o Windows o salva e executa como 'malware.exe'. Ou um WAF bloqueia acesso a '/admin' mas permite '/admin.' (com ponto final na pasta), contornando a proteção.

How to mitigate

Normalize nomes de arquivo removendo caracteres de trailing (pontos, espaços) antes de qualquer validação ou comparação. Implemente validação de extensão após normalização. Em Windows, considere usar APIs de validação do SO que já tratam equivalência, ou rejeitar nomes com caracteres suspeitos (ponto/espaço finais).