[CVE-2019-17638] Jenkins viene con el búfer Jetty dañado

referencia:

  • https://www.jenkins.io/security/advisory/2020-08-17/
  • https://github.com/advisories/GHSA-x3rh-m7vp-35f2
  • https://github.com/eclipse/jetty.project/issues/4936
  • https://nvd.nist.gov/vuln/detail/2019-17638

Al iniciar jenkins de esta manera, se usa el embarcadero que viene con Jenkins:

 java -jar jenkins.war

Versión afectada:

  • Jenkins 2.224 <= versión <= 2.242
  • Jenkins LTS 2.222.1 versión <= 2.235.4

El Jetty incorporado de estas versiones es la versión Jetty 9.4.27. Hay lagunas.
Las versiones específicas de Jetty afectadas:
Eclipse Jetty, versiones 9.4.27.v20200227- 9.4.29.v20200521

Detalles de la vulnerabilidad: los
atacantes no autorizados pueden obtener encabezados de respuesta HTTP de Jenkins para otros usuarios.

Si el encabezado de respuesta es demasiado grande, Jetty generará una excepción para generar un error HTTP 431. Cuando esto sucede, el ByteBuffer que contiene el encabezado de respuesta HTTP se devolverá al ByteBufferPool dos veces. Debido a esta versión dual, dos subprocesos pueden obtener el mismo ByteBuffer del grupo, y cuando el subproceso 1 usará ByteBuffer para escribir datos de response1, el subproceso 2 completará los datos de response2 en ByteBuffer. Luego, el hilo 1 continúa escribiendo en el búfer que ahora contiene datos de respuesta2. Esto hace que client1 envíe request1 y espere una respuesta, viendo así que response2 puede contener datos confidenciales que pertenecen a client2 (ID de sesión HTTP, credenciales de autenticación, etc.).

Proceso de reproducción de la vulnerabilidad:

Logramos reproducir el problema creando un punto final donde enviaremos explícitamente un encabezado de respuesta que es más grande que el tamaño máximo configurado (8KB), después de lo cual la aplicación dejará de responder inmediatamente y todos los errores anteriores Comenzará a aparecer.

Supongo que te gusta

Origin blog.csdn.net/caiqiiqi/article/details/108072618
Recomendado
Clasificación