CyberGlossary

Vulnerabilidades

Condición de carrera

También conocido como: Bug de concurrencia

Definición

Defecto en el que la seguridad o corrección del sistema depende del momento u orden de operaciones concurrentes, permitiendo a un atacante intercalar acciones y eludir comprobaciones.

Una condición de carrera surge cuando dos o más hilos, procesos o actores acceden a estado compartido sin sincronización adecuada, de modo que un atacante puede ganar una ventana temporal para observar estado parcial o alterarlo entre operaciones. Variantes relevantes para seguridad incluyen TOCTOU (comprobar-y-usar), fallos de atomicidad en lógica financiera y bugs de reentrada en manejadores de señales. La explotación a menudo requiere planificación precisa, golpear el kernel desde pools de hilos o trucos de sistema de archivos (renombrados, symlinks). Defensas: bloqueos correctos, transacciones, compare-and-swap atómico, APIs basadas en descriptores (openat, fstatat), diseños idempotentes y herramientas como ThreadSanitizer.

Ejemplos

  • CVE-2016-5195 (Dirty COW): condición de carrera en el manejo COW del kernel Linux.
  • Carrera de sistema de archivos que permite sustituir un archivo entre access() y open().

Términos relacionados