Fallos del tipo CWE-242

11 resultados

Uso de Função Inerentemente Perigosa

É quando o código usa funções de linguagem ou biblioteca que são conhecidamente inseguras por design — como strcpy(), gets() ou sprintf() sem limites — porque não possuem mecanismos internos de proteção contra overflow ou injeção. O risco é que essas funções permitem que um atacante corrompa memória, execute código arbitrário ou causa falha da aplicação.

Ejemplo

Um programa legado em C que lê input do usuário com gets() para preencher um buffer de 256 bytes; um atacante envia uma string com 500 caracteres e sobrescreve a pilha, alterando o endereço de retorno da função.

Cómo mitigar

Substitua funções perigosas por alternativas seguras: use fgets() ou read() em vez de gets(), strncpy() ou strlcpy() em vez de strcpy(), snprintf() em vez de sprintf(). Em linguagens modernas (Python, Java, Rust), essas armadilhas já estão mitigadas por padrão; para C/C++, use linters e sanitizers (AddressSanitizer) para detectar o problema em tempo de desenvolvimento.