Un sitio web malicioso podría abusar de un error de software introducido en la implementación de Apple Safari 15 de la API IndexedDB para rastrear la actividad en línea de los usuarios en el navegador web y, lo que es peor, incluso revelar su identidad.
La vulnerabilidad, apodada Fugas de base de datos indexadas, fue divulgado por la compañía de software de protección contra fraudes FingerprintJS, que informó el problema al fabricante de iPhone el 28 de noviembre de 2021.
IndexedDB es una interfaz de programación de aplicaciones (API) de JavaScript de bajo nivel proporcionada por navegadores web para administrar una Base de datos NoSQL de objetos de datos estructurados como archivos y blobs.
«Como la mayoría de las soluciones de almacenamiento web, IndexedDB sigue una política del mismo origen», Mozilla notas en su documentación de la API. «Entonces, si bien puede acceder a los datos almacenados dentro de un dominio, no puede acceder a los datos en diferentes dominios».
Mismo origen es un mecanismo fundamental de seguridad que asegura que los recursos recuperados de distintos orígenes — es decir, un combinación del esquema (protocolo), host (dominio) y número de puerto de una URL, están aislados entre sí. Esto significa efectivamente que «http[:]//ejemplo[.]com/» y «https[:]//ejemplo[.]com/» no tienen el mismo origen porque usan esquemas diferentes.
Al restringir cómo un script cargado por un origen puede interactuar con un recurso de otro origen, la idea es secuestrar scripts potencialmente maliciosos y reducir los posibles vectores de ataque al evitar que un sitio web no autorizado ejecute código JavaScript arbitrario para leer datos de otro dominio, por ejemplo, un servicio de correo electrónico.
Pero ese no es el caso con la forma en que Safari maneja la API IndexedDB en Safari en iOS, iPadOS y macOS.
«En Safari 15 en macOS, y en todos los navegadores en iOS y iPadOS 15, la API de IndexedDB está violando la política del mismo origen», Martin Bajanik dicho en un escrito. «Cada vez que un sitio web interactúa con una base de datos, se crea una nueva base de datos (vacía) con el mismo nombre en todos los demás marcos, pestañas y ventanas activos dentro de la misma sesión del navegador».
Una consecuencia de esta violación de la privacidad es que permite que los sitios web sepan qué otros sitios web está visitando un usuario en diferentes pestañas o ventanas, sin mencionar que identifica con precisión a los usuarios en los servicios de servicios de Google como YouTube y Google Calendar, ya que estos sitios web crean bases de datos IndexedDB que incluyen el ID de usuario de Google autenticados, que es un identificador interno que identifica de forma única una sola cuenta de Google.
«Esto no solo implica que los sitios web no confiables o maliciosos pueden conocer la identidad de un usuario, sino que también permite vincular varias cuentas separadas utilizadas por el mismo usuario», dijo Bajanik.

Para empeorar las cosas, la fuga también afecta Navegación privada modo en Safari 15 si un usuario visita varios sitios web diferentes desde la misma pestaña en la ventana del navegador. Nos comunicamos con Apple para obtener más comentarios y actualizaremos la historia si recibimos una respuesta.
«Este es un gran error», Jake Archibald, promotor de desarrolladores de Google Chrome, tuiteó. «En OSX, los usuarios de Safari pueden cambiar (temporalmente) a otro navegador para evitar que sus datos se filtren entre orígenes. Los usuarios de iOS no tienen esa opción, porque Apple impone una prohibición a otros motores de navegador».