Léxico de TI › Segurança › Race condition / TOCTOU

Race condition / TOCTOU

Segurança Svenska → Atualizado: 2026-09-28

Uma vulnerabilidade em que o estado muda entre o momento em que um programa VERIFICA algo e o momento em que USA isso (Time-Of-Check to Time-Of-Use). O atacante explora essa janela minúscula de tempo para injetar uma mudança depois da verificação, mas antes do uso.

Exemplo clássico: um programa verifica "esse usuário tem permissão para ler o arquivo X?" (check) e só depois abre X (use). Entre as duas etapas, o atacante troca X por um symlink apontando para um arquivo secreto → a verificação valeu para o arquivo inofensivo, mas o uso acaba acertando o secreto. De forma mais geral: qualquer sequência do tipo "verifica-e-depois-age" sem atomicidade pode ser explorada se um atacante conseguir mudar o estado dentro dessa janela. Outros casos: saques duplos de um saldo (verifica saldo, debita — rodando duas vezes em paralelo), TOCTOU em sistemas de arquivos, e corridas em autenticação. Defesa: tornar a operação atômica (abrir o arquivo e verificar o handle já aberto, não o caminho), usar locks ou transações, e evitar depender de que o estado não mude entre uma etapa e outra. Uma classe de bug sutil, mas séria. Está ligada ao IDOR e à desserialização insegura.

← Voltar ao léxico