Weaknesses of type CWE-567

5 results

Acesso não sincronizado a dados compartilhados em contexto multithreaded

Ocorre quando múltiplas threads acessam e modificam o mesmo dado sem mecanismos de sincronização (locks, mutexes, variáveis atômicas). Isso causa race conditions onde o resultado final depende da ordem de execução das threads, levando a corrupção de dados, comportamento imprevisto ou falhas de segurança.

Example

Uma aplicação web onde duas requisições simultâneas incrementam um contador compartilhado sem sincronização: thread A lê valor 10, thread B lê valor 10, A escreve 11, B escreve 11 — resultado final é 11 em vez de 12. Em contextos de autenticação ou pagamento, isso compromete integridade crítica.

How to mitigate

Use mecanismos de sincronização apropriados: locks/mutexes para seções críticas, variáveis atômicas para operações simples, ou estruturas thread-safe (como ConcurrentHashMap em Java). Minimize o tempo dentro de locks e considere padrões imutáveis para reduzir compartilhamento de estado.