Fallos del tipo CWE-111
2 resultadosUso direto de JNI inseguro
Ocorre quando código Java chama funções nativas (C/C++) via JNI sem validar entrada ou tratar erros adequadamente. A falta de validação permite que dados malformados cheguem ao código nativo, causando buffer overflows, corrupção de memória ou execução arbitrária de código com privilégios da JVM.
Uma aplicação Java expõe um método que passa strings do usuário diretamente para uma função C via JNI sem verificar tamanho ou formato. Um atacante envia uma string oversized que estoura um buffer no lado nativo, permitindo injetar shellcode e assumir controle da JVM.
Validar e sanitizar todos os dados antes de passá-los à JNI: verificar tipos, tamanhos, ranges e formatos esperados. Usar wrappers defensivos e manter o código nativo ao mínimo, preferindo lógica em Java puro. Manter bibliotecas nativas atualizadas e testar boundary conditions agressivamente.