the_open_door
café
ESEN
← Volver al índice

GlassFish 4.x directory traversal (CVE-2017-1000028)

Oracle GlassFish Server 4.1 (y algunas 3.x) es vulnerable a un directory traversal en la ruta theme/META-INF/* cuando se codifica el / con la secuencia UTF-8 no canónica %c0%af (bytes 0xC0 0xAF). Parsers antiguos la decodifican a / en vez de rechazarla, permitiendo salir del directorio esperado y leer cualquier fichero al que tenga acceso el usuario del servicio.

curl 'http://<host>:4848/theme/META-INF/prototype%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..%c0%afetc/passwd'

El sintagma útil es enumerar directorios de aplicaciones instaladas (Synaman, MSSQL, Java) para dar con credenciales en ficheros de configuración (secretos en el código) que sí funcionan contra el resto del sistema (RDP, SSH, servicios).

Matices. La CVE es una LFI pura: no da ejecución. La escalada a RCE llega si la lectura descubre credenciales que valgan contra un panel administrativo (el propio 4848 de GlassFish acepta despliegue de WAR) o contra otro servicio.

Cómo detectarlo. La firma en el log de acceso son las secuencias UTF-8 sobrelargas %c0%af/%c0%ae (o %e0%80%af) en una URL hacia :4848/theme/META-INF/, algo que ningún navegador legítimo emite; un WAF o el propio parser que rechace %c0%* lo bloquea y registra. Peticiones que acaban en etc/passwd o en ficheros de configuración por esa ruta, y una ráfaga de ../ codificados desde una IP, confirman el traversal.

Defensa. Actualizar GlassFish/Payara a versiones recientes o migrar. Como mitigación de red, filtrar el acceso a /theme/META-INF/* y rechazar las secuencias %c0%* en los parsers de URL antes de que lleguen al backend.

Máquinas donde se aplica

  • FishProving Grounds Practice