Weaknesses of type CWE-821
13 resultsSincronização incorreta entre threads
Ocorre quando múltiplas threads acessam e modificam dados compartilhados sem mecanismos adequados de sincronização (locks, mutexes, semáforos). Isso causa race conditions: o resultado depende da ordem aleatória de execução das threads, levando a corrupção de dados, comportamento imprevisível ou falhas de segurança.
Um contador global é incrementado por duas threads simultaneamente sem lock. Thread A lê o valor 5, Thread B lê 5, Thread A escreve 6, Thread B escreve 6 — resultado final é 6 em vez de 7. Em código de autenticação, isso pode permitir bypass de validações ou acesso não autorizado.
Use primitivas de sincronização nativas da linguagem (Mutex em Rust, synchronized/volatile em Java, locks em Python) para proteger acesso a dados compartilhados. Evite compartilhamento desnecessário de estado mutável entre threads e prefira estruturas thread-safe quando possível.