Vulnerabilidad crítica del servidor Jenkins podría filtrar información confidencial

«La vulnerabilidad puede permitir que atacantes no autentificados obtengan encabezados de respuesta HTTP que pueden incluir datos confidenciales destinados a otro usuario».

La falla , que afecta a Jetty y Jenkins Core, parece haber sido introducida en la versión 9.4.27 de Jetty, que agregó un mecanismo para manejar grandes encabezados de respuesta HTTP y evitar desbordamientos de búfer.

«El problema fue en el caso de un desbordamiento del búfer, liberamos el búfer del encabezado, pero no anulamos el campo», dijo el jefe del proyecto de Jetty, Greg Wilkins.

Para manejar esto, Jetty lanza una excepción para producir un error HTTP 431, lo que hace que los encabezados de respuesta HTTP se publiquen en el grupo de búfer dos veces, lo que a su vez causa corrupción de memoria y divulgación de información.

Por lo tanto, debido a la doble liberación, dos subprocesos pueden adquirir el mismo búfer del grupo al mismo tiempo y permitir potencialmente que una solicitud acceda a una respuesta escrita por el otro subproceso, que puede incluir identificadores de sesión, credenciales de autenticación y otra información confidencial. Dicho de otra manera, «mientras que thread1 está a punto de usar ByteBuffer para escribir datos de response1, thread2 llena el ByteBuffer con datos de response2. Thread1 luego procede a escribir el búfer que ahora contiene datos de response2. Esto da como resultado client1, que emitió request1 y espera respuestas, para ver la respuesta2 que podría contener datos confidenciales pertenecientes a client2».

En un caso, la corrupción de la memoria hizo posible que los clientes se movieran entre sesiones, por lo que tenían acceso entre cuentas, ya que las cookies de autenticación de la respuesta de un usuario se enviaban a otro usuario, lo que permitía al usuario A saltar a la sesión del usuario B.

Después de que se revelaron las implicaciones de seguridad, la vulnerabilidad se abordó en Jetty 9.4.30.v20200611 lanzado el mes pasado. Jenkins,Winstone , ha corregido la falla en su utilidad en Jenkins 2.243 y Jenkins LTS 2.235.5 lanzados ayer.

Se recomienda que los usuarios de Jenkins actualicen su software a la última versión para mitigar la falla de corrupción del búfer.