Vulnerabilidad de cadena de formato
¿Qué es Vulnerabilidad de cadena de formato?
Vulnerabilidad de cadena de formatoFallo causado por pasar entrada controlada por el usuario como cadena de formato a funciones tipo printf, permitiendo lecturas o escrituras arbitrarias en memoria.
Los fallos de cadena de formato ocurren cuando un desarrollador escribe printf(input_usuario) en lugar de printf("%s", input_usuario). Especificadores como %x filtran memoria de la pila, %s desreferencia punteros arbitrarios y %n escribe el número de bytes impresos en una dirección, obteniéndose primitivas arbitrarias de lectura y escritura. La explotación clásica apunta a entradas GOT/PLT, punteros a funciones o canarios de pila. Las cadenas de herramientas modernas avisan (-Wformat-security, FORTIFY_SOURCE) y muchos lenguajes prohíben el patrón, pero el bug sigue apareciendo en C heredado, firmware embebido y shells. La defensa es mecánica: nunca pases entrada no confiable como cadena de formato y usa formateadores tipados como fmtlib, println! de Rust o fmt de Go con verbos explícitos.
● Ejemplos
- 01
CVE-2000-0573 (wu-ftpd): cadena de formato en site exec, root remoto.
- 02
Routers embebidos que registran directamente en syslog con campos controlados por el atacante.
● Preguntas frecuentes
¿Qué es Vulnerabilidad de cadena de formato?
Fallo causado por pasar entrada controlada por el usuario como cadena de formato a funciones tipo printf, permitiendo lecturas o escrituras arbitrarias en memoria. Pertenece a la categoría de Vulnerabilidades en ciberseguridad.
¿Qué significa Vulnerabilidad de cadena de formato?
Fallo causado por pasar entrada controlada por el usuario como cadena de formato a funciones tipo printf, permitiendo lecturas o escrituras arbitrarias en memoria.
¿Cómo defenderse de Vulnerabilidad de cadena de formato?
Las defensas contra Vulnerabilidad de cadena de formato combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Vulnerabilidad de cadena de formato?
Nombres alternativos comunes: Bug de formato printf.