Weaknesses of type CWE-414

4 results

Verificação de Lock Ausente

A fraqueza ocorre quando código crítico que deveria estar protegido por um mecanismo de sincronização (lock, mutex, semáforo) não verifica ou não adquire esse lock antes de acessar recursos compartilhados. Isso permite que múltiplas threads acessem e modifiquem o mesmo dado simultaneamente, causando condições de corrida (race conditions) e corrupção de estado.

Example

Um servidor web que incrementa um contador de requisições sem lock: duas threads acessam a variável global simultaneamente, leem o valor 100, incrementam para 101 e escrevem de volta — a operação que deveria chegar a 102 fica em 101. Em contextos críticos (transferências financeiras, atualizações de privilégio), isso pode causar duplicação ou perda de dados.

How to mitigate

Sempre proteja seções críticas com mecanismos de sincronização apropriados (mutex, rwlock, atomic operations). Realize análise estática de código e testes de concorrência para identificar acessos desprotegidos a dados compartilhados. Considere arquiteturas imutáveis ou thread-safe por design.