Race condition / TOCTOU
Een kwetsbaarheid waarbij de toestand verandert tussen het moment waarop een programma iets CONTROLEERT en het moment waarop het dat GEBRUIKT (Time-Of-Check to Time-Of-Use); de aanvaller grijpt het piepkleine tijdvenster aan.
Het klassieke voorbeeld: een programma controleert of een gebruiker bestand X mag lezen (check) en opent X daarna pas (use). Wisselt een aanvaller X daartussen om voor een symlink naar een geheim bestand, dan gold de controle voor het onschuldige bestand, terwijl het gebruik het geheime raakt. Algemener geldt: elke check-then-act-reeks zonder atomiciteit is te misbruiken als iemand de toestand in het venster kan veranderen. Andere gevallen zijn dubbel opnemen van een saldo (saldo controleren, afschrijven — twee keer parallel uitgevoerd), TOCTOU op bestandssystemen en races bij authenticatie.
Verdediging: maak de bewerking atomair (open het bestand en controleer de geopende handle, niet het pad), gebruik locks of transacties en reken er niet op dat de toestand tussen twee stappen gelijk blijft. Een subtiele maar ernstige bugklasse.