Una vulnerabilidad que afecta al navegador Safari puede filtrar la identidad de un usuario y su historial de sitios web, han advertido los investigadores.
El problema se introdujo en la implementación de Safari de la API IndexedDB en su última oferta, la versión 15. IndexedDB es una API del navegador para el almacenamiento en el lado del cliente, diseñada para albergar cantidades significativas de datos.
Para evitar la fuga de datos por ataques de secuencias de comandos en sitios cruzados (XSS), IndexedDB sigue la política denominada "same-origin", que controla qué recursos pueden acceder a cada dato.
La política del mismo origen restringe la forma en que los documentos o scripts cargados desde un origen pueden interactuar con los recursos de otros orígenes. También evita que un script malicioso en una página obtenga acceso a datos sensibles en otra página web.
Una publicación en el blog de los investigadores de FingerprintJS que descubrieron el fallo, han revelado que en Safari 15 en macOS, y en todos los navegadores en iOS y iPadOS 15, la API IndexedDB está violando la política del mismo origen en la implementación de WebKit, lo que lleva a que la información de los usuarios sea accesible.
"Permite que sitios web arbitrarios aprendan qué sitios web visita el usuario en diferentes pestañas o ventanas", explica la entrada del blog. "Esto es posible porque los nombres de las bases de datos suelen ser únicos y específicos del sitio web.
Identificados con precisión
Además, hemos observado que, en algunos casos, los sitios web utilizan identificadores únicos específicos de los usuarios en los nombres de las bases de datos. Esto significa que los usuarios autentificados pueden ser identificados de forma única y precisa.
"Algunos ejemplos populares serían YouTube, Google Calendar o Google Keep. Todos estos sitios web crean bases de datos que incluyen el identificador de usuario de Google autenticado y, en caso de que el usuario haya iniciado sesión en varias cuentas, se crean bases de datos para todas estas cuentas."
Por lo tanto, los sitios web no fiables o maliciosos no sólo pueden conocer la identidad de un usuario, sino que también podrían permitir la vinculación de varias cuentas distintas utilizadas por el mismo usuario.
Los investigadores señalaron que estas filtraciones no requieren ninguna acción específica del usuario. Una pestaña o ventana que se ejecuta en segundo plano y consulta continuamente la API de IndexedDB en busca de bases de datos disponibles puede saber qué otros sitios web visita un usuario en tiempo real, explicaron.
Por otra parte, los sitios web pueden abrir cualquier sitio web en un iframe o ventana emergente para activar una filtración basada en IndexedDB para ese sitio específico.
FingerprintJS afirma que más de 30 de los 1000 sitios web más importantes de Alexa utilizan bases de datos indexadas directamente en su página de inicio, lo que les deja potencialmente expuestos al fallo, aunque "esperan que el número sea significativamente mayor en escenarios del mundo real".
¿Arreglado?
Se puede encontrar una prueba de concepto en la entrada del blog de FingerprintJS.
Apple ha sido informada del problema y, según los investigadores, los ingenieros han confirmado que han solucionado el problema. Sin embargo, FingerprintJS afirma que el problema sigue presente.
Mientras tanto, los usuarios "no pueden hacer mucho" para protegerse de la vulnerabilidad, explican los investigadores.
Martin Bajanik, ingeniero de software de FingerprintJS, dijo a The Daily Swig: "El impacto en el mundo real es que los sitios web visitados utilizando un navegador afectado (todos los navegadores en iOS 15 y iPadOS 15, así como Safari 15 en MacOS) son capaces de acceder a parte de su actividad de navegación en diferentes pestañas o ventanas.
"No somos capaces de saber qué sitios web se están aprovechando de esta vulnerabilidad, por lo que hasta que se solucione, la privacidad de los usuarios afectados puede o no ser violada por los sitios que visitan."
Bajanik añadió: "Los usuarios de MacOS pueden cambiar de navegador mientras tanto. Los usuarios de iOS 15 y iPasOS 15 no tienen esta opción, ya que todos los navegadores están afectados; sus opciones son mucho más limitadas.
"Podrían bloquear todo el JavaScript por defecto y sólo permitirlo en los sitios que son de confianza, pero esto dará lugar a una experiencia de navegación incómoda debido a la ubicuidad de JavaScript en toda la web.
"Esperemos que esta vulnerabilidad se solucione en breve, momento en el que la mejor protección será actualizar el sistema operativo de cada uno una vez resuelto el problema".