27 de mayo de 2018

Inyección de código arbitrario en Signal Desktop

La versión de escritorio de la popular aplicación de mensajería contiene una vulnerabilidad que permite ejecutar código arbitrario (de momento, solo confirmado JavaScript) en el cliente receptor del mensaje.
Jueves por la tarde. En una charla entre amigos a través de Signal Desktop, uno de ellos comparte una URL. Pero en el mensaje, en vez de aparecer ésta al completo, parte se muestra como imagen. En cualquier otro grupo el error hubiera pasado desapercibido y seguirían tranquilamente con sus vidas. Pero cuando el grupo es de investigadores de seguridad, salta la liebre y hay que llegar al fondo del asunto.
De esta forma los investigadores Iván Ariel Barrera (@HacKanCuBa), Alfredo Ortega (@ortegaalfredo) y Juliano Rizzo (@julianor) descubrieron la semana pasada una vulnerabilidad en Signal Desktop que permite a cualquier usuario inyectar código en el cliente receptor del mensaje.
La aplicación no filtra correctamente etiquetas HTML y esto puede ser utilizado para inyectarlas en el cliente receptor utilizando un mensaje convenientemente manipulado. Etiquetas como 'img' o 'iframe' permiten la carga de contenido remoto. También se interpreta la etiqueta 'script'.
El caso de 'iframe' en sistemas Windows es el más peligroso, ya que permite la carga de código arbitrario JavaScript desde ubicaciones remotas, por ejemplo a través de SMB.
Aunque la vulnerabilidad se soluciona el pasado día 11 en la versión v1.10.1 de Signal Desktop, a los investigadores les llama la atención la velocidad con la que se soluciona el error. Tirando del hilo, descubren que el parche aplicado (una expresión regular) ya existía en versiones anteriores, eliminándose el pasado 10 de abril para solucionar un problema con los enlaces. Aun así, apuntan a que incluso esta RegExp sigue siendo vulnerable.
Más información:
signal-desktop HTML tag injection writeup and advisory:
Fuente: Hispasec