viernes, 30 de noviembre de 2012

XSS en RoundCube: Si administras un webmail RoundCube, deshabilita la opción de mostrar los archivos Flash en el navegador

RoundCube es un software open source para crear servicios de webmail. Bastante agradable y fácil de usar, un buen conjunto de características y posibilidades ampliable mediante plugins, personalizable mediante skins... Un sistema que, en definitiva, consigue su propósito de proporcionar al usuario una experiencia bastante cercana a la de las aplicaciones de escritorio tradicionales.

Desde luego, una opción a tener en cuenta. Y a seguir en el caso de que actualmente estemos usando otra. Su página web es:
http://www.roundcube.net/

El pasado 21 de noviembre de 2012 encontré una vulnerabilidad en RoundCube y la comuniqué a sus desarrolladores. Podéis encontrar los detalles y una prueba de concepto en:
http://trac.roundcube.net/ticket/1488828

Hay un fichero en el que se muestra un ejemplo y se proporcionan los detalles técnicos y una prueba de concepto:
http://trac.roundcube.net/attachment/ticket/1488828/roundcube.net.pdf.zip

Dadas las circunstancias, está en inglés. Por si alguien prefiere que se lo cuenten en español: básicamente se trata de que un atacante puede enviar un fichero Flash (SWF) adjunto a un mensaje. El fichero podría incluso haber sido renombrado a TXT para no levantar sospechas. Si el receptor abre el fichero (y hay formas de hacérselo abrir incluso sin que haga clic sobre él) el fichero Flash será abierto en el navegador.

El problema es que un fichero SWF, que no se nos olvide que fue enviado por un atacante, puede provocar la ejecución de código JavaScript en el contexto de la sesión abierta en RoundCube. Eso que en jerga técnica se denomina XSS.

Y ejecutar JavaScript en el contexto de una aplicación es casi tomar control de ella. El atacante podría robar la información de los contactos de la víctima. O sus correos electrónicos. O hacerle enviar mensajes, o eliminar los que haya en sus bandejas o forzarle a visitar páginas,...

La solución aportada hasta ahora por el equipo de desarrollo de RoundCube consiste en detectar los SWF "disfrazados" de otra extensión.

En lo que respecta a ficheros SWF con extensión SWF (sin renombrar), vinieron a decir que, bueno, es una situación similar a si a un usuario le envían un documento de Word con código malicioso en Visual Basic dentro. Como señalando que ya no es problema del sistema de correo. Lo cual no termina de convencerme, puesto que significaría dejar en manos del usuario la responsabilidad final.

Y los usuarios no siempre conocen los riesgos asociados y las repercusiones de sus actos.

Comentan, en todo caso, que es posible configurar RoundCube para que se fuerce la descarga de los archivos de Flash en lugar de mostarlos en el navegador. Con ello no se conseguiría evitar totalmente la ejecución de código JavaScript (el usuario siempre podría abrir el fichero SWF manualmente después), pero sí que se haga en el contexto de la sesión abierta en el correo electrónico. En definitiva, el código JavaScript no interactuaría con el correo. Y señalan que eso se puede hacer anulando manualmente la opción de configuración de 'client_mimetypes' en Roundcube.

Yo les he pedido que ésta sea la configuración por defecto.

No sé si terminarán haciéndolo o no. En todo caso, siempre habrá gente que tenga webmails que no pueda o no se atreva a actualizar y que podrían seguir siendo vulnerables indefinidamente.

De modo que, si administras un servicio de webmail basado en RoundCube, ahí va mi consejo: échale un vistazo a la configuración del webmail y asegúrate de que está deshabilitada la visualización en el navegador de los adjuntos de tipo Flash.