Weaknesses of type CWE-662

30 results

Sincronização Inadequada Entre Threads

Ocorre quando múltiplas threads acessam e modificam dados compartilhados sem mecanismos de sincronização (locks, mutexes, ou operações atômicas). Isso causa race conditions onde o resultado final depende da ordem de execução das threads, levando a corrupção de dados, lógica quebrada ou comportamentos impredizíveis.

Example

Um contador global é incrementado por duas threads simultaneamente sem proteção: ambas leem o valor 5, incrementam para 6, e escrevem 6 de volta — resultado esperado era 7. Em um servidor web, isso pode deixar sessões inconsistentes ou estados de autenticação corrompidos.

How to mitigate

Use primitivas de sincronização apropriadas (mutex, semáforo, operações atômicas) para proteger seções críticas. Em linguagens modernas, prefira estruturas thread-safe (ConcurrentHashMap em Java, canais em Go) e evite compartilhamento desnecessário de estado mutável entre threads.