Fallos del tipo CWE-666

1 resultado

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

A aplicação tenta usar, modificar ou liberar um recurso (arquivo, conexão, memória, etc.) em um momento inadequado do seu ciclo de vida — por exemplo, escrever em um arquivo já fechado, liberar memória já liberada, ou acessar uma conexão de banco desconectada. Isso causa comportamento imprevisível, corrupção de dados ou travamentos.

Ejemplo

Um programa abre uma conexão TCP, a fecha explicitamente, mas continua tentando enviar dados por ela em outro trecho do código. A segunda operação falha silenciosamente ou causa uma exceção não tratada, deixando o sistema em estado inconsistente.

Cómo mitigar

Implemente estado explícito para cada recurso (aberto/fechado, inicializado/finalizado) e verifique esse estado antes de toda operação. Use padrões como RAII (em C++) ou context managers (em Python) para garantir que recursos sejam usados apenas enquanto válidos.