Se han detectado diversas vulnerabilidades en la versión 7.0 del
navegador Opera. En total se describen tres vulnerabilidades críticas,
ya que pueden ser utilizadas para acceder al contenido de cualquier
archivo del disco del usuario; las dos vulnerabilidades restantes
afectan a la privacidad del usuario, al revelar las URL que ha visitado.
Opera es un navegador web desarrollado por una empresa noruega y destaca
por su velocidad y reducido tamaño, sin por ello carecer de las
prestaciones disponibles en otros navegadores modernos. Tradicionalmente
ha sido un programa que ha tenido los preceptos de seguridad como parte
fundamental de su diseño, siendo raras las vulnerabilidades de seguridad
que se han documentado.
A principios del presente mes de febrero se anunció la existencia de
diversas vulnerabilidades de seguridad que afectaban únicamente la
versión 7.0 (todas las versiones anteriores están libres de los
problemas descritos). Algunas de estas vulnerabilidades pueden
clasificarse como críticas ya que permiten el acceso completo, en
modalidad de lectura, al sistema de archivos del usuario de Opera.
* Vulnerabilidad en el modelo de seguridad de Opera
Para evitar que mediante JavaScript una página pueda acceder a la
información de otro dominio, Opera implementa un modelo de seguridad que
debería impedir estos traspases de información.
No obstante, se han descubierto diversas vulnerabilidades en este modelo
de seguridad: se puede acceder y ejecutar a funciones JavaScript de
diferentes dominios; las funciones JavaScript se ejecutan con las
credenciales del dominio del usuario y no las correspondientes al
dominio de origen; es posible ignorar las propiedades y métodos (tanto
nativos como definidos por el usuario) en otras ventanas.
La utilización de estas vulnerabilidades puede permitir, desde una
página especialmente formateada, acceder en modalidad de lectura a
cualquier archivo existe en la máquina del usuario.
* El fantasma de la Ópera
La consola de JavaScript de Opera utiliza tres archivos que se
encuentran en el directorio raíz del programa. La función de la consola
es mostrar las excepciones no controladas que se producen en cada
sesión.
La consola incluye el código necesario para visualizar las URL como
enlaces activos. No obstante, debido a la insuficiencia de los controles
aplicados, un atacante puede inyectar sus propios atributos de código al
enlace. Con un poco de manipulación, el atacante puede aprovechar esta
vulnerabilidad para forzar la ejecución de código script arbitrario.
* Tratamiento de imágenes en Opera
Opera 7.0 no realiza ninguna comprobación en una URL que apunta al disco
del usuario (file://) para la visualización de un gráfico. Como
consecuencia de esta ausencia de controles, un atacante puede inyectar
código en la URL que le permite acceder al contenido de cualquier
archivo residente en la máquina del usuario.
* Acceso a la URL anterior y siguiente
Opera 7.0 no protege el acceso desde JavaScript al histórico de URL
visitadas por el usuario. Así un atacante puede obtener la última URL
visitada por el usuario, así como la siguiente (las URL a las que se
accede, respectivamente, con el botón «Atrás» y «Adelante» del
navegador).
* Obtención de las URL que ha visitado el usuario
Como en el caso anterior, Opera 7.0 no impide que una función JavaScript
obtenga la relación de todas las URL visitadas por el usuario en una
sesión que provoquen algún tipo de excepción. Como la configuración por
defecto de Opera 7.0 es la de identificarse como Internet Explorer,
muchas páginas web provocan errores. Aprovechando esto y la
vulnerabilidad, el atacante puede identificar fácilmente las URL que ha
visitado el usuario.
Opera ha publicado recientemente la versión 7.01 para Windows que
soluciona todas estas vulnerabilidades.
xavi@hispasec.com
Deja una respuesta