TOCTOU
Time-of-Check to Time-of-Use — una condición de carrera en la que un atacante cambia algo entre el momento en que el programa lo comprueba y el momento en que lo usa.
Caso clásico: un proceso privilegiado llama a access(ruta) para comprobar que el usuario puede leer el archivo, y después llama a open(ruta). El atacante cambia el enlace simbólico entre ambas llamadas al sistema. Resultado: se lee /etc/shadow «como root en nombre del usuario».
Solución: evitar las llamadas al sistema basadas en rutas y usar variantes con descriptor de archivo (openat, fstat) que se refieran a un inodo concreto. O usar O_NOFOLLOW/RESOLVE_BENEATH. En Windows: trucos equivalentes con oplocks y junctions de NTFS.