Fallos del tipo CWE-414

4 resultados

Verificação de trava ausente

É quando o código acessa ou modifica um recurso compartilhado (variável, arquivo, estrutura de dados) sem garantir que uma trava (lock) esteja sendo mantida. Em ambientes multi-thread, isso causa race conditions: duas threads podem acessar simultaneamente e produzir estados inconsistentes, corrupção de dados ou comportamento imprevisto.

Ejemplo

Um contador global de usuários online é incrementado em uma aplicação web multi-thread. Se a thread A lê o valor (100), a thread B também lê (100), ambas incrementam para 101 e escrevem — o resultado final é 101 quando deveria ser 102. Sem lock, a operação não é atômica.

Cómo mitigar

Use mecanismos de sincronização apropriados: mutex/lock ao acessar o recurso compartilhado, variáveis atômicas (java.util.concurrent.atomic), ou estruturas thread-safe (ConcurrentHashMap). Revise toda seção crítica e garanta que o acesso ao recurso está protegido antes de liberar para produção.