Fallos del tipo CWE-821

13 resultados

Sincronização Incorreta

Ocorre quando o código compartilha dados entre múltiplas threads ou processos sem mecanismos adequados de sincronização (locks, semáforos, mutexes). Isso permite que uma thread acesse ou modifique dados enquanto outra está fazendo o mesmo, causando corrupção de estado, comportamento imprevisível ou até vazamento de informações sensíveis.

Ejemplo

Um serviço web que incrementa um contador global de requisições sem usar mutex: duas threads leem o valor 5 simultaneamente, incrementam para 6, e ambas escrevem 6 de volta — perdendo uma requisição e deixando o estado inconsistente. Em casos mais críticos, uma thread pode ler uma senha parcialmente sobrescrita por outra.

Cómo mitigar

Use primitivas de sincronização apropriadas (mutex, RWLock, atomic operations) ao acessar dados compartilhados. Considere também redesenhar para evitar compartilhamento desnecessário — usar thread-local storage, imutabilidade ou arquitetura sem estado reduz significativamente o risco.