Volver al glosario

Path traversal

2 min de lectura

En seguridad de aplicaciones, el path traversal es un fallo por el que la entrada del usuario se usa para construir una ruta de fichero y el atacante se sale del directorio previsto, llegando a ficheros que la aplicación nunca quiso servir. También se le llama directory traversal, y lee o escribe ficheros con los privilegios del servicio.

29 de julio de 2026
Compartir:

Cómo funciona

La aplicación une un directorio base con un nombre sacado de la petición y abre el resultado. Como el sistema operativo resuelve los segmentos relativos, un nombre que contenga referencias al directorio padre sube y sale del directorio base antes de que el fichero se abra. Las rutas absolutas hacen lo mismo en un solo paso allí donde la aplicación no fuerza la base.

La distinción que importa es entre validar y canonicalizar. Validar inspecciona la cadena que envió el usuario. Canonicalizar resuelve la cadena hasta la única ruta real que designa, siguiendo segmentos relativos, enlaces simbólicos y codificación, y solo entonces la compara. Una comprobación que corre antes de resolver está comprobando una cadena sobre la que el sistema de ficheros todavía no se ha pronunciado, y por eso el orden correcto es resolver primero, verificar después que la ruta resuelta sigue empezando dentro del directorio base, y abrirla al final.

Qué sale mal

Los filtros corren en el orden equivocado y quitan lo que no deben. Eliminar una sola vez la secuencia de directorio padre deja una carga que se reconstruye sola cuando la eliminación se aplica sobre texto solapado. Decodificar después de validar deja pasar un separador codificado. Normalizar Unicode después de la comprobación hace lo mismo. Permitir un enlace simbólico dentro de un directorio base por lo demás correcto entrega el sistema de ficheros entero.

La escritura es peor que la lectura y se olvida a menudo. Un extractor de archivos que se fía de las rutas que vienen dentro del archivo colocará ficheros donde el archivo diga, lo que convierte una función de subida en escritura arbitraria de ficheros y con frecuencia en ejecución remota de código. En dispositivos esta clase es endémica: las interfaces web que sirven ficheros de configuración y de registro por nombre son un hallazgo estándar en el análisis de firmware, y las aplicaciones móviles lo repiten contra el almacenamiento local.

Dónde aparece esto en una auditoría

Probamos todos los parámetros que acaban formando parte de una ruta, cabeceras y entradas de archivo incluidas, y lo demostramos con un fichero cuyo contenido no se puede confundir con ninguna otra cosa. El informe nombra el parámetro, la carga, el fichero recuperado o escrito y la cuenta bajo la que corre el servicio, porque esa cuenta decide si el impacto se queda en la configuración o llega a las credenciales. Comprobamos además si la lectura y la escritura comparten el mismo manejador, porque arreglar una y dejar la otra es la corrección parcial de siempre. Esto forma parte de cómo probamos el manejo de ficheros en una aplicación web.

¿Quieres ver cómo trabajamos en Asperis Security?

Agenda 30 minutos con uno de nuestros especialistas. Revisamos tu stack y te decimos qué conviene probar primero.