Fallos del tipo CWE-413
15 resultadosBloqueio inadequado de recursos
É quando o código falha em garantir acesso exclusivo a um recurso compartilhado (arquivo, memória, banco de dados) durante operações críticas. Múltiplas threads ou processos podem acessar e modificar o recurso simultaneamente, causando corrupção de dados, race conditions ou comportamentos imprevistos.
Um contador de sessões ativas em uma aplicação web é incrementado e decrementado por múltiplas requisições simultâneas sem sincronização. Duas requisições leem o valor 5 ao mesmo tempo, cada uma incrementa para 6 e escreve, resultando em perda de uma unidade. Após várias operações, o contador fica completamente inconsistente.
Use primitivas de sincronização apropriadas: mutexes, semáforos ou locks ao acessar recursos compartilhados. Aplique transações atômicas em bancos de dados e mantenha seções críticas o menor tempo possível para evitar deadlocks.