Weaknesses of type CWE-111

2 results

Uso direto de JNI sem validação de segurança

Ocorre quando código Java chama funções nativas (C/C++) via JNI sem validar adequadamente os parâmetros, tipos de dados ou resultados. Como a validação de tipo do Java não se aplica ao código nativo, erros como buffer overflow, leitura de memória arbitrária ou execução de código malicioso podem acontecer no lado do C/C++.

Example

Uma aplicação Java chama uma função nativa que espera um array de bytes com tamanho máximo de 256 bytes, mas não valida o tamanho passado antes de chamar JNI. Um atacante passa um array muito maior, causando buffer overflow na função C/C++ subjacente.

How to mitigate

Valide sempre tamanho, tipo e alcance dos parâmetros em Java antes de passar para JNI. Implemente verificação de limites na função nativa também. Considere usar bibliotecas JNI seguras ou wrappers que automatizam validação, e realize teste de fuzzing nas interfaces JNI.