Cross-Site Scripting (XSS) en el módulo de Informes
INCIBE, el Instituto Nacional de Ciberseguridad de España, ha coordinado la publicación de una vulnerabilidad en WOCU-Monitoring. Se trata de un Cross-Site Scripting (XSS) persistente en su módulo de Informes. A esta vulnerabilidad se le ha asignado el código CVE-2021-4035.
Un Cross Site Scripting almacenado (Stored XSS), tambien conocido como persistente, es una vulnerabilidad que permite a un atacante inyectar código ejecutable por un navegador en la visualización de un sitio web.
Descripción de la vulnerabilidad
TinyMCE, el editor de texto utilizado por WOCU-Monitoring en su módulo de Informes, permite editar y formatear texto desde un navegador web, guardando por defecto su resultado en un formato HTML. El uso del método .setContent del editor para mostrar los datos almacenados, no validaba adecuadamente el contenido guardado pudiendo ejecutar código Javascript si éste se inyectaba en algunos atributos. La ausencia de la adecuada validación de los datos, junto al uso de una política permisiva en el uso de texto enriquecido desde nuestro backend, ha permitido en versiones inferiores a la 48.2 y superiores a la 0.27 la posibilidad de ejecutar código Javascript en la visualización de comentarios en el módulo de Informes.
La vulnerabilidad reportada era explotable únicamente por usuarios de la aplicación WOCU-Monitoring con acceso a la escritura de comentarios en dicho módulo de Informes.
Impacto
Un atacante que dispusiera de un usuario con acceso al módulo de Informes más capacidades de escritura de comentarios, podría guardar un comentario incluyendo código Javascript. Este código podría ejecutarse en el navegador de otro usuario que dispusiera del mismo acceso, cuando fuese a visualizar los comentarios guardados en el informe.
Versiones afectadas
Versiones de WOCU-Monitoring inferiores a 48.2 y superiores a 0.27 eran vulnerables.
Corrección de la vulnerabilidad
La vulnerabilidad reportada por INCIBE, fue debida a la incorrecta sanitización de los elementos por parte del editor de texto TinyMCE. Se han limpiado desde el servidor todos los datos que hacían uso de texto enriquecido mediante listas blancas de etiquetas y atributos permitidos. El XSS encontrado permitía que en el caso de que se hubiese inyectado código Javascript en el guardado de datos, éste se ejecutase al proceder a la carga del mismo.
El equipo de WOCU-Monitoring comprobó y confirmó la vulnerabilidad a las horas de recibir la notificación, pasando a la corrección y parcheo de los primeros clientes de la solución a partir de las 24 horas desde el aviso. Inmediatamente, todas las instancias de WOCU-Monitoring en producción fueron actualizadas entre las fechas 03/12/2021 y 05/12/2021.
¿Cómo le afecta a mi empresa?
La vulnerabilidad reportada fue corregida en todos los clientes de WOCU-Monitoring en el rango de fechas anteriormente mencionado.
No es necesario realizar acciones adicionales, puesto que la vulnerabilidad comenzó a corregirse 24 horas después de ser notificada y desde el 05/12/2021 todas las instalaciones están actualizadas o debidamente parcheadas.
Agradecimientos
Desde el equipo de WOCU-Monitoring agradecemos a INCIBE la rápida coordinación durante todo el proceso, así como al auditor encargado de reportarla.
Todo software tiene vulnerabilidades y es la capacidad de una empresa de verificar, tratar y mitigar en poco tiempo, lo que debe valorarse en estos casos. Instamos a otros auditores a comunicarse con nosotros, sin ningún tipo de temor, si consiguen encontrar cualquier fallo en nuestra solución, de la misma forma que invitamos a otras empresas a corregir vulnerabilidades con el mismo nivel de transparencia.