Falhas do tipo CWE-667
151 resultadosSincronização inadequada ou ausente
Ocorre quando código compartilhado por múltiplas threads não usa mecanismos de lock (mutex, semáforo, etc.) para proteger acessos concorrentes a dados. Sem sincronização, dois threads podem ler e escrever o mesmo recurso simultaneamente, causando corrupção de dados, decisões de segurança incorretas ou comportamento imprevisível.
Um contador de tentativas de login compartilhado entre requisições HTTP sem lock: dois requests simultâneos leem o valor 4, incrementam para 5 e escrevem de volta. Resultado: o contador fica 5 em vez de 6, e um atacante consegue mais tentativas que o permitido.
Use primitivas de sincronização nativa da linguagem (mutex em C/C++, synchronized em Java, Lock em Python) ao acessar dados compartilhados. Se possível, prefira estruturas thread-safe (ConcurrentHashMap, AtomicInteger) ou evite compartilhamento redesenhando a arquitetura (thread-local storage, message passing).