Weaknesses of type CWE-1389
6 resultsParsing incorreto de números em diferentes bases
A aplicação não interpreta corretamente números escritos em bases diferentes (decimal, hexadecimal, octal, binária). Isso ocorre quando o código assume que um número é sempre decimal ou não valida o prefixo que indica a base (como '0x' para hex ou '0' para octal), levando a interpretações erradas de valores críticos — como permissões de arquivo, tamanhos de buffer ou validações de entrada.
Um sistema interpreta '010' como 10 em decimal, quando deveria ser 8 (octal). Se usado para definir permissões de arquivo ou verificar limites de segurança, o atacante pode contornar validações injetando números em bases inesperadas.
Sempre especifique e valide explicitamente a base esperada ao fazer parse de números — use funções como `int(s, 10)` em Python ou `Integer.parseInt(s, 10)` em Java. Desabilite auto-detecção de base (como '0x' automático) a menos que seja intencionalmente necessário e bem documentado.