Weaknesses of type CWE-557
3 resultsProblemas de Concorrência
É uma categoria que agrupa falhas relacionadas ao acesso simultâneo de recursos compartilhados por múltiplas threads ou processos sem sincronização adequada. Quando o código não protege dados comuns, uma thread pode ler ou modificar valores enquanto outra está fazendo o mesmo, causando corrupção de dados, estados inconsistentes ou comportamentos imprevisíveis.
Um contador de sessões ativas em um servidor web que é incrementado/decrementado por múltiplas requisições simultâneas sem lock: duas requisições podem ler o mesmo valor (100), incrementar para 101, e escrever de volta — perdendo uma contagem. O número final é 101 quando deveria ser 102.
Use mecanismos de sincronização (mutexes, semáforos, monitores) para proteger seções críticas onde dados compartilhados são acessados. Prefira estruturas thread-safe oferecidas pela linguagem (como Collections.synchronizedMap em Java ou threading.Lock em Python) e evite locks granulares demais que causem deadlock.