CyberGlossary

Vulnerabilidades

Condição de corrida

Também conhecido como: Bug de concorrência

Definição

Defeito em que a segurança ou correção de um sistema depende do timing ou ordem de operações concorrentes, permitindo ao atacante intercalar ações e contornar verificações.

Uma condição de corrida surge quando dois ou mais threads, processos ou atores acedem a estado partilhado sem sincronização adequada, permitindo ao atacante ganhar uma janela temporal para observar estado intermédio ou alterá-lo entre operações. Variantes relevantes para segurança incluem TOCTOU (verificar-e-usar), falhas de atomicidade em lógica financeira e bugs de reentrância em manipuladores de sinais. A exploração requer frequentemente escalonamento preciso, martelar o kernel com pools de threads ou truques de sistema de ficheiros (renames, symlinks). Defesas: bloqueio adequado, transações, compare-and-swap atómico, APIs baseadas em descritores (openat, fstatat), designs idempotentes e ferramentas como o ThreadSanitizer.

Exemplos

  • CVE-2016-5195 (Dirty COW): condição de corrida no kernel Linux no manuseamento de COW.
  • Corrida no sistema de ficheiros que permite substituir um ficheiro entre access() e open().

Termos relacionados