Weaknesses of type CWE-626

6 results

Interação com byte nulo (envenenamento de null byte)

Fraqueza que ocorre quando um atacante insere um byte nulo (\x00) em uma entrada para interromper o processamento de strings, causando truncamento não intencional. Em linguagens como C/C++, o byte nulo marca fim de string, então um \x00 no meio de um caminho de arquivo ou comando pode fazer o programa ignorar tudo após ele, contornando validações ou permitindo acesso não autorizado.

Example

Um aplicativo valida que apenas arquivos com extensão .txt são acessados. Se o usuário enviar 'arquivo.php\x00.txt', a validação passa (vê '.txt' no final), mas o acesso ao arquivo em nível de SO recebe apenas 'arquivo.php', contornando a restrição e potencialmente executando código.

How to mitigate

Validar e rejeitar explicitamente bytes nulos em entradas antes de usá-las em operações de arquivo ou comando. Em linguagens seguras, usar APIs que tratam strings corretamente (não baseadas em terminação por null byte). Fazer sanitização defensiva, não apenas validação de formato.