Falhas do tipo CWE-821

13 resultados

Sincronização Incorreta entre Threads

Ocorre quando múltiplas threads acessam e modificam dados compartilhados sem mecanismos de sincronização adequados (locks, mutexes, semáforos). Isso causa race conditions, onde o resultado depende da ordem de execução das threads, levando a corrupção de dados, comportamentos imprevisíveis ou falhas de segurança.

Exemplo

Um servidor web com contador global de requisições onde duas threads incrementam a variável simultaneamente sem lock: Thread A lê valor 100, Thread B lê 100, ambas escrevem 101, quando deveria ser 102. Em contexto de segurança, isso pode causar bypass de validações (ex: limite de tentativas de autenticação não respeitado) ou corrupção de estado crítico.

Como mitigar

Use primitivas de sincronização adequadas ao seu contexto: locks (mutex) para seções críticas, variáveis atômicas para operações simples, ou estruturas thread-safe do seu framework. Revise código multi-thread com ferramentas de análise estática (ThreadSanitizer, Coverity) e testes de stress para expor race conditions.