Weaknesses of type CWE-557

3 results

Problemas de Concorrência

É uma categoria que agrupa falhas relacionadas ao acesso simultâneo de recursos compartilhados por múltiplas threads ou processos sem sincronização adequada. Quando o código não protege dados comuns, uma thread pode ler ou modificar valores enquanto outra está fazendo o mesmo, causando corrupção de dados, estados inconsistentes ou comportamentos imprevisíveis.

Example

Um contador de sessões ativas em um servidor web que é incrementado/decrementado por múltiplas requisições simultâneas sem lock: duas requisições podem ler o mesmo valor (100), incrementar para 101, e escrever de volta — perdendo uma contagem. O número final é 101 quando deveria ser 102.

How to mitigate

Use mecanismos de sincronização (mutexes, semáforos, monitores) para proteger seções críticas onde dados compartilhados são acessados. Prefira estruturas thread-safe oferecidas pela linguagem (como Collections.synchronizedMap em Java ou threading.Lock em Python) e evite locks granulares demais que causem deadlock.