
Deserialización de datos no confiables en IBM WebSphere - IBM WebSphere 7,8,8.5,9
IBM WebSphere deserialización de datos no confiables - IBM WebSphere 7,8,8.5,9
Título: IBM WebSphere deserialización de datos no confiables
Aplicación: IBM WebSphere 7,8,8.5,9
Descripción: El servidor de aplicaciones deserializa datos no confiables cuando la
cookie WASPostParam está presente. Esto puede llevar a una DoS por
agotamiento de recursos y potencialmente a ejecución remota de código.
Autores: Federico Dotta <[email protected]>
Maurizio Agazzini <[email protected]>
Estado del proveedor: Corregido (PI62375)
CVE Candidato: El proyecto Common Vulnerabilities and Exposures ha asignado
el nombre CVE-2016-5983 a este problema.
Referencias: http://lab.mediaservice.net/advisory/2016-02-websphere.txt
http://lab.mediaservice.net/code/websphere_payload.zip
http://www-01.ibm.com/support/docview.wss?uid=swg21990060
Al usar autenticación de formulario personalizada, IBM WebSphere establece automáticamente
las cookies WASPostParam y WASReqURL cuando la cookie de sesión LtpaToken2 es
inválida. Los datos contenidos en estas cookies se utilizan cuando el usuario inicia
sesión nuevamente para recuperar la última página visitada y los parámetros relacionados.
WASPostParam es un objeto Java serializado que se deserializa sin
verificar el tipo de objeto. Este comportamiento puede ser explotado para causar una denegación de
servicio y potencialmente ejecutar código arbitrario.
Los objetos que pueden causar la DoS se basan en payloads conocidos divulgados
tomados de:
Actualmente no se conoce una cadena que permita la ejecución de código en IBM WebSphere,
sin embargo, cada día se descubren nuevas cadenas.
El ataque se puede reproducir de la siguiente manera:
crear una aplicación con autenticación de formulario personalizada
después del inicio de sesión del usuario, el servidor de aplicaciones establece LtpaToken2
realizar una solicitud HTTP GET que contenga la cookie WASPostParam con uno de
estos contenidos:
01_BigString_limited_base64.txt: es un objeto de tipo cadena; el servidor
responderá de manera normal (tamaño del objeto similar al siguiente).
02_SerialDOS_limited_base64.txt: el servidor de aplicaciones requerirá
aproximadamente 2 minutos para ejecutar la solicitud con un 100% de uso de CPU.
03_BigString_base64.txt: es un objeto de tipo cadena; el servidor
responderá de manera normal (tamaño del objeto similar al siguiente).
04_SerialDOS_base64.txt: el servidor de aplicaciones requerirá una
cantidad desconocida de tiempo para ejecutar la solicitud con un 100% de uso de CPU.
Esta vulnerabilidad afecta las siguientes versiones y revisiones de
IBM WebSphere Application Server y versiones anteriores:
Liberty 16.0.0.2
9.0.0.1
8.5.5.10
8.0.0.12
7.0.0.41
Aplicar Interim Fix PI62375
Prueba de Concepto.
Cronología
20/08/2016 - Primera comunicación enviada a IBM PSIRT (psirt at us.ibm.com)
22/08/2016 - Respuesta de IBM, PSIRT Advisory 6345 asignado al error
05/10/2016 - Comunicación de IBM con información de corrección (PI62375)
07/10/2016 - Aviso de seguridad publicado