Laboratorio de seguridad · 005
Queue
Un proxy que reconstruye cabeceras y reenvía el cuerpo en crudo sobre una conexión reutilizada. El backend deja de saber dónde acaba la petición.
- Difícil
- Linux
- HTTP
- Smuggling
- Desync
Descripción del reto
edge escucha en el puerto 8080 y solo deja pasar /public/*: el resto exige una cabecera que no tienes. Reenvía al backend reconstruyendo las cabeceras y mandando el cuerpo en crudo por una conexión reutilizada. Detrás, core guarda las dos evidencias en rutas internas.
Tu objetivo: que el backend ejecute una petición que el proxy nunca autorizó, y sacar las dos evidencias.
La vulnerabilidad
CVE-2026-58044 (desincronización de peticiones)
El proxy recompone las cabeceras al vuelo y reenvía el cuerpo en crudo por una conexión reutilizada, sin Content-Length: el backend pierde el marco y lee el cuerpo como la petición siguiente.
Objetivos
User flag
20 ptsColoca una petición dentro del cuerpo y lee /home/edge/flag.txt.
Root flag
20 ptsCon esa evidencia como ticket, llega a la de root: /root/root.txt.
Reto completado
Las flags son únicas para tu sesión. Inicia la máquina para poder validarlas.
Antes de empezar
- 1Inicia la máquina
Pulsa «Iniciar máquina». Tarda alrededor de un minuto en estar lista.
- 2Prueba el proxy
El borde escucha en
http://<ip>:8080/. Pide/public/infoy luego intenta/internal/flag. - 3Entrega las dos evidencias
Primero la interna; después, la de root con esa misma evidencia como ticket.
Contexto técnico
Reto propio sobre Debian 13 y Node 20. edge atiende en 0.0.0.0:8080 como el usuario edge; core escucha solo en 127.0.0.1:9091 como root.
La clase del fallo es la del aviso CVE-2026-58044 de Node.js (julio de 2026): proxies que reconstruyen las cabeceras de salida y siguen mandando el cuerpo a una conexión reutilizada, de modo que el backend desincroniza peticiones.