Esta semana la empresa FingerprintJS ha publicado un artículo en su blog informando de una seria vulnerabilidad en Safari que permite a cualquier sitio web conocer información del usuario acerca de las últimas páginas web visitadas o incluso la imagen asociada a su cuenta de Google.
Esta vulnerabilidad ocurre debido a que la implementación que realiza Safari (WebKit) de la tecnología IndexedDB, que permite a las páginas web almacenar información en el navegador, no aplica la política de seguridad Same-origin para asegurar que solo las páginas de un mismo dominio puedan acceder a la lista de bases de datos creadas por ellas.
La vulnerabilidad de Safari permite a cualquier sitio web conocer cuales son algunos de los últimos sitios web por los que hemos navegado.
Si bien es cierto que esta vulnerabilidad no permite acceder al contenido de la base de datos en sí, si permite conocer el nombre de todas las bases de datos creadas en el navegador, independientemente del sitio web que las haya creado. Estas bases de datos habitualmente llevan el nombre del sitio web o incluso un identificador único del usuario, lo que permite a otros sitios web conocer por dónde hemos estado navegando.
Para comprobar nosotros mismos el alcance de esta vulnerabilidad, o si realmente nuestro navegador está afectado, han publicado una demo donde ver parte de la información que nuestro navegador está filtrando.
Esta vulnerabilidad se puede explotar en Safari 15 y otros navegadores basados en WebKit. Fue reportada el pasado mes de noviembre de 2021, pero aún no ha sido resuelta, por lo que es posible que en los próximos días veamos una nueva actualización para solucionarlo por parte de Apple.
Hasta entonces, no existe una forma eficaz de mitigarlo más allá de utilizar otro navegador, o deshabilitar Javascript de forma temporal en las páginas web que no confiemos. Otra solución sería utilizar el modo incógnito del navegador, siempre y cuando no navegamos entre diferentes webs en la misma pestaña del navegador.
Para más información, puedes consultar el articulo original de FingerprintJS.