Weaknesses of type CWE-366
18 resultsCondição de corrida entre threads
Ocorre quando múltiplas threads acessam e modificam um recurso compartilhado simultaneamente sem sincronização adequada, permitindo que o estado final do recurso dependa da ordem de execução das threads. O resultado é imprevisível e pode levar a corrupção de dados, escalação de privilégio ou bypass de validações de segurança.
Duas threads verificam se um arquivo existe e depois o criam/escrevem sem lock. Entre a verificação e a escrita, outra thread pode modificar o arquivo, causando corrupção ou permitindo um ataque TOCTOU (Time of Check Time of Use). Em sistemas de autenticação, isso pode levar ao bypass de verificações de senha se dois logins simultâneos não sincronizarem o acesso ao banco de sessões.
Use primitivas de sincronização (mutex, semáforos, locks) para proteger seções críticas onde múltiplas threads acessam dados compartilhados. Revise todo código com acesso concorrente e implemente testes de stress com múltiplas threads para detectar race conditions em tempo de desenvolvimento.