IndexedDB, una API compatible con los principales navegadores y que funciona como base de datos para guardar una gran cantidad de información de páginas webs, tiene un bug en Safari que supone un importante problema de privacidad. Este error, en concreto, permite a los sitios web que utilizan la mencionada herramienta acceder a datos de otras páginas, a información privada del usuario y a su historial de búsqueda, según ha descubierto FingerprintJS.

La API, comúnmente utilizada por los desarrolladores, está diseñada para crear una base de datos única para un sitio web. Es decir, la información almacenada solo puede ser accesible por esa misma página, y no por terceros. En cambio, el error proveniente del WebKit de Safari, permite que la web arbitraria pueda acceder a las bases de datos de aquellas páginas abiertas en una pestaña o ventana.

"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 activas dentro de la misma sesión del navegador".

El problema de este bug de Safari va más allá de una clara violación de los datos privados del usuario. Según explica el mencionado portal, alguna de las webs que utilizan IndexedDB suelen guardar un identificador único de usuario. YouTube, por ejemplo, almacena el ID de usuario de Google en esa base de datos. Este incluye información pública que puede ser accesible por webs maliciosas para identificar al usuario, como la imagen de perfil.

¿Hay una solución para el bug de IndexedDB en Safari y Chrome en iOS 15?

El exploit afecta principalmente a Safari 15, la versión del navegador de Apple disponible en iOS 15, iPadOS 15 y macOS Monterey. No obstante, otros navegadores que funcionan en las mencionadas versiones de los diferentes sistemas operativos también se han visto afectados. Uno de ellos es Google Chrome en iOS, dado que utiliza WebKit, el motor de navegación de Apple donde se incluye la API de IndexedDB.

Por el momento, no hay un método definitivo para evitar que las webs puedan acceder a la base de datos de otras páginas abiertas en el mismo navegador. De hecho, el bug también se aplica en las pestañas privadas de Safari o Chrome. La única forma de evitar que los datos sean accesibles por otras webs es bloquear la ejecución de Javascript en el navegador. No obstante, esto puede hacer que algunos elementos importantes de una web, como imágenes, vídeos, etc. no sean visibles. Es probable que Apple lance un parche en las próximas horas para solucionar el error. Por lo tanto, se recomienda comprobar periódicamente las actualizaciones disponibles para iOS, iPadOS o Safari y Chrome.