Falhas do tipo CWE-111

2 resultados

Uso direto de JNI inseguro

É quando código Java chama funções nativas (C/C++) através da JNI (Java Native Interface) sem validação adequada de entrada ou tratamento de erros. Código nativo tem acesso direto à memória e pode causar crashes, corrupção de dados ou execução de código arbitrário se receber dados malformados ou maliciosos.

Exemplo

Uma aplicação Java expõe um método JNI que copia um array Java diretamente para um buffer C alocado estaticamente, sem verificar o tamanho do array. Um atacante passa um array gigante e causa buffer overflow no código nativo, comprometendo o processo todo.

Como mitigar

Valide todos os dados de entrada no lado Java antes de passar para JNI (tamanho, tipo, range); use alocação dinâmica e segura (malloc com checagem, ou structs de tamanho fixo); trate exceções JNI e logs de erro; minimize a superfície exposta (nem toda função nativa precisa ser acessível da JNI).