CyberGlossary

Vulnerabilidades

Vulnerabilidad TOCTOU

También conocido como: TOCTTOU, Comprobación-y-uso

Definición

Condición de carrera entre la comprobación y el uso, en la que el estado verificado por una decisión de seguridad cambia antes de ejecutar la acción correspondiente.

Una vulnerabilidad TOCTOU (Time-Of-Check to Time-Of-Use, CWE-367) es un tipo concreto de condición de carrera en el que un programa comprueba una propiedad de un recurso (propietario, permisos, contenido) y luego opera sobre él como si la comprobación siguiera vigente. El atacante que puede intercambiar el recurso entre los dos pasos —normalmente con symlinks, renombrados o memoria compartida— elude la comprobación. El caso clásico es access() seguido de open(): el atacante reemplaza la ruta por un symlink a /etc/shadow tras un access() exitoso. Las defensas pasan por APIs que combinan comprobación y uso (openat con O_NOFOLLOW, fstat), trabajar con descriptores en vez de rutas, bloqueo de archivos y sandboxes más estrictos.

Ejemplos

  • Programa setuid que comprueba propiedad con stat() y luego abre la ruta.
  • Escape de contenedor mediante TOCTOU sobre rutas de bind-mount.

Términos relacionados