Weaknesses of type CWE-664

43 results

Controle 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.

Example

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.

How to mitigate

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.