Se
ha confirmado la existencia de una vulnerabilidad en el framework Apache
Cordova que podría permitir a un atacante
modificar el comportamiento de aplicaciones Android solo con pulsar un enlace.
El alcance puede variar desde inyectar textos o popups, modificar
funcionalidades básicas o inutilizar la aplicación.
Apache Cordova es un framework de licencia libre,
desarrollado por la Apache Software Foundation, que incluye un gran número de APIs
de diferentes dispositivos móviles. Cada vez es más usado por desarrolladores
de aplicaciones móviles para acceder a funciones nativas de los dispositivos,
como la cámara o el acelerómetro, empleando tecnologías web como HTML, CSS y JavaScript. El servicio es compatible con
iOS, Android, Blackberry, Windows Phone, Palm WebOS, Bada y Symbian.
Trend Micro ha
descubierto esta vulnerabilidad (con CVE-2015-1835) calificada como de gravedad
alta y que afecta a todas las versiones de Apache Cordova hasta la 4.0.1. Esto significa
que la mayoría de aplicaciones basadas en Cordova, que vienen a representar un 5,6%
de todas las aplicaciones en Google Play, son propensas a sufrir un ataque.
Apache ha publicado un
boletín de seguridad que confirma la vulnerabilidad, que podría permitir a
un atacante modificar el comportamiento de aplicaciones Android a través de un
exploit remoto si la víctima pulsa sobre un enlace malicioso.
La vulnerabilidad reside en la
ausencia de valores explícitos establecidos en Config.xml en las aplicaciones
Android desarrolladas con Cordova y a una característica que permite que las preferencias
se puedan establecer desde fuera de la aplicación. Esta característica fue
parte de una actualización de código publicada en noviembre de 2010, junto con
la actualización de Cordova Android 0.9.3. Pero esto podrá permitir a un
atacante inyectar contenido malicioso para alterar las características de la
aplicación, bien desde servidores web remotos o desde aplicaciones locales
comprometidas.
Trend Micro ha publicado una
prueba de concepto y varios vídeos que muestran como basta acceder a una página
web con el navegador para provocar diversos efectos, según las preferencias de
la aplicación modificadas. En este ejemplo se muestra como se inyecta un cuadro
de diálogo no deseado: