Weaknesses of type CWE-664
43 resultsControle inadequado de recurso durante seu ciclo de vida
Ocorre quando o software não gerencia corretamente a alocação, uso e liberação de um recurso (memória, arquivo, conexão de banco de dados, handle). Isso permite que o recurso seja acessado após ser liberado, reutilizado de forma insegura, ou nunca liberado, causando vazamentos ou corrupção de estado.
Uma aplicação web abre uma conexão com banco de dados em uma thread, mas não a fecha em caso de exceção. A conexão fica aberta indefinidamente, exaurindo o pool de conexões. Ou um buffer é liberado, mas o código continua escrevendo nele em outra parte da aplicação, causando corrupção de memória.
Use padrões como try-finally, try-with-resources (Java) ou context managers (Python) para garantir liberação automática. Implemente análise estática para detectar vazamentos. Revise o fluxo de controle (exceções, retornos antecipados) e documente claramente quem é responsável por liberar cada recurso.