Weaknesses of type CWE-1058

1 result

Elemento estático compartilhado em contexto multi-thread sem sincronização

Ocorre quando um método ou função acessa ou modifica variáveis estáticas (ou membros compartilhados) em um ambiente multi-thread sem mecanismos de sincronização. Múltiplas threads podem modificar o mesmo estado simultaneamente, causando condições de corrida e comportamento imprevisível.

Example

Um servlet que incrementa um contador estático a cada requisição sem sincronização. Duas requisições simultâneas podem ler o mesmo valor, incrementar e escrever de volta, perdendo uma das incrementações. Em produção, o contador fica inconsistente.

How to mitigate

Use `synchronized`, `volatile`, ou estruturas thread-safe como `AtomicInteger` para variáveis estáticas compartilhadas. Melhor ainda: evite estado estático compartilhado; se necessário, isole por thread usando `ThreadLocal` ou passe o estado como parâmetro.