Weaknesses of type CWE-413
15 resultsTravamento inadequado de recursos
Ocorre quando uma aplicação acessa ou modifica um recurso compartilhado (arquivo, memória, banco de dados) sem garantir sincronização adequada entre threads ou processos. Sem locks ou mecanismos de exclusão mútua, múltiplas partes do código podem interferir uma na outra, causando corrupção de dados, condições de corrida (race conditions) e comportamento imprevisto.
Um servidor web que incrementa um contador de requisições sem mutex: duas threads leem o valor 100 simultaneamente, incrementam para 101, e ambas escrevem 101 de volta. O resultado deveria ser 102, mas é 101. Em contextos de segurança, isso pode levar a bypass de limites de taxa, validações quebradas ou alteração de estado crítico.
Use mecanismos de sincronização nativos da linguagem (mutexes, semáforos, locks) ao acessar recursos compartilhados. Para dados críticos, prefira estruturas thread-safe ou implemente filas sincronizadas. Revise código multi-thread com ferramentas de análise estática e testes de race condition.