Weaknesses of type CWE-675

2 results

Múltiplas operações em contexto de operação única

Ocorre quando o código executa várias operações sobre um recurso (arquivo, conexão, memória) em um contexto que deveria permitir apenas uma operação atômica. Isso gera race conditions, inconsistência de estado ou corrupção de dados, porque entre uma operação e outra o recurso pode ser modificado por outra thread ou processo.

Example

Um sistema de permissões verifica se um arquivo existe (operação 1) e depois o abre (operação 2). Entre as duas operações, outro processo pode deletar ou renomear o arquivo, causando erro ou acessando um arquivo inesperado. O código assumiu que o recurso permaneceria igual entre as duas chamadas.

How to mitigate

Use operações atômicas únicas (ex: open com O_EXCL no Linux), locks/mutexes para proteger a janela entre operações, ou APIs que garantem atomicidade. Evite check-then-act sem sincronização; ao invés, trate o erro quando a operação falhar.