Weaknesses of type CWE-404

695 results

Liberação ou encerramento impróprio de recursos

Acontece quando a aplicação não libera adequadamente recursos (memória, conexões de banco de dados, arquivos abertos, sockets) após seu uso, deixando-os presos. Isso causa vazamento de recursos: a aplicação consome cada vez mais memória ou conexões até ficar indisponível ou travar.

Example

Um serviço web abre uma conexão com o banco de dados para cada requisição, mas em caso de erro não fecha a conexão no bloco finally ou com try-with-resources. Após milhares de requisições falhadas, o pool de conexões se esgota e novas requisições começam a falhar.

How to mitigate

Use try-with-resources (Java), context managers (Python), ou finally blocks para garantir liberação mesmo em caso de exceção. Implemente testes de carga e monitore vazamento de recursos em produção com ferramentas APM.