Weaknesses of type CWE-666

1 result

Operação em recurso em fase incorreta do ciclo de vida

Ocorre quando uma aplicação tenta usar, modificar ou liberar um recurso (arquivo, conexão, memória, etc.) em um momento inválido do seu ciclo de vida — por exemplo, acessar um recurso já fechado, liberar memória duas vezes, ou operar sobre um recurso antes de inicializá-lo. Isso causa comportamento impredizível, corrupção de dados ou crash.

Example

Um desenvolvedora abre um arquivo, processa dados e fecha o descriptor. Depois, por erro lógico em tratamento de exceção, tenta ler do mesmo arquivo já fechado. Ou uma classe libera um pool de conexões de banco de dados, mas uma thread ainda tenta usar uma conexão desse pool — acesso a recurso em fase errada.

How to mitigate

Implemente máquinas de estado claras para recursos críticos (inicializado, em uso, fechado); use padrões como try-with-resources (Java) ou context managers (Python) para garantir liberação automática; e teste camadas de erro para validar que operações só ocorrem em estados válidos.