2 mar. 2015

JetLeak: como revelar las últimas peticiones hechas a servidores Jetty

Según un reciente análisis realizado por el investigador Stephen Komal de Gotham Digital Science, existe una vulnerabilidad en el servidor Jetty que puede permitir extraer información sensible del sistema. Se ven afectadas las versiones 9.2.3 a la 9.2.8 y la rama 9.3.x beta

Jetty es un servidor Web y contenedor de 'servlets' basado en Java. Se distribuye y usa en entornos de desarrollo como Eclipse, o multitud de servidores de aplicaciones como JBoss, Apache Geronimo, Google GWT o App Engine entre otros.

La vulnerabilidad JetLeak (CVE-2015-2080) se debe a una incorrecta implementación de las peticiones realizadas al módulo 'HttpParser' a la hora de gestionar en detalle los eventos de error. Debido a esto, una petición especialmente manipulada conseguiría recabar los últimos 16 bytes del búfer compartido de peticiones, dentro de la respuesta HTTP 400. Lo que llevaría a mostrar por tanto información sensible como Cookies, credenciales, correos y diversa información del sistema.

Si entramos en detalle en la vulnerabilidad, una petición realizada a un servidor ya actualizado y que generara un error al utilizar caracteres incorrectos (no ASCII por ejemplo), debería dar una respuesta HTTP 400 similar a ésta:

HTTP/1.1 400 Illegal character 0x7
Content-Length: 0
Connection: close
Server: Jetty(9.2.9.v20150224)

Mientras que en un servidor vulnerable, ante esa misma petición especialmente manipulada daría como resultado el volcado del buffer en la misma respuesta, de la siguiente manera:
HTTP/1.1 400 Illegal character 0x7 in state=HEADER_IN_NAME in 'GET
/dummy/ HTTP/... localhost\nCoo\x07<<>>e:
application/x-...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Content-Length: 0
Connection: close
Server: Jetty(9.2.8.v20150217)

Como podemos comprobar, se concatena información del buffer de 'debug' y cualquier script modificado para realizar múltiples conexiones al servidor podría ir recabando todo tipo de información sobre las últimas peticiones hechas.

Se ha facilitado un script para comprobar los servidores afectados: https://github.com/GDSSecurity/Jetleak-Testing-Script

Se recomienda actualizar lo antes posible a la versión 9.2.9.

Fuente: Hispasec

0 comentarios:

Publicar un comentario

Gracias por dejar un comentario en Segu-Info
Si vas a dejar una consulta, procura tener habilitado tu perfil en Blogger o deja una forma de contacto.

Gracias por comentar!