Quelques jours seulement après qu'Apple a corrigé un bogue ouvrant la porte à une boucle sans fin de plantage de terminaux iOS, les chercheurs en sécurité de FingerprintJS ont découvert une vulnérabilité Safari. Celle-ci pourrait exposer l'activité Internet et les données personnelles d'un utilisateur à un site web tiers ouvert dans une nouvelle fenêtre ou un autre onglet de ce navigateur. Le bogue provient de l'API IndexedDB, utilisée pour le stockage côté client de quantités importantes de données structurées, rappelle Mozilla. Comme l'explique FingerprintJS, étant donné qu'IndexedDB est une API de bas niveau utilisée par tous les principaux navigateurs, de nombreux développeurs choisissent d'utiliser des wrappers qui résument la plupart des aspects techniques et fournissent une API plus facile à utiliser et plus conviviale pour les développeurs. Ce bug avait été signalé sur WebKit Bug Tracker le 28 novembre 2021.
Comme la plupart des technologies de navigateur web modernes explique FingerprintJS, IndexedDB suit une politique de même origine (same origin), un mécanisme de sécurité fondamental qui limite la manière dont les documents ou les scripts chargés à partir d'une origine peuvent interagir avec des ressources d'autres origines. Une origine est définie par le schéma (protocole), le nom d'hôte (domaine) et le port de l'URL utilisée pour y accéder. « Dans Safari 15 sur macOS et dans tous les navigateurs sur iOS et iPadOS 15, l'API IndexedDB enfreint la politique de même origine. Chaque fois qu'un site web interagit avec une base de données, une nouvelle base de données (vide) portant le même nom est créée dans tous les autres cadres, onglets et fenêtres actifs au sein de la même session de navigateur », indique la recherche.
Un bug résolu pour Apple mais un correctif en attente
Étant donné que certains sites web utilisent des identifiants uniques spécifiques à l'utilisateur dans les noms de base de données, FingerprintJS explique que les utilisateurs authentifiés peuvent être identifiés de manière unique et précise par des sites tels que YouTube, Google Calendar et Google Keep. Et puisque l'utilisateur est connecté à ces sites à l'aide de son identifiant Google, les bases de données créées pour ce compte pourraient être divulguées, incluant donc des informations personnelles. FingerprintJS a découvert plusieurs autres sites vulnérables au bogue, notamment Twitter et Bloomberg.
Le bug en action est visible dans une démo créée par FingerprintJS et une vidéo a aussi été mise en ligne. La seule mesure d'atténuation connue à ce jour consiste à changer de navigateur sur macOS. Les utilisateurs d'iOS et d'iPadOS ont moins d'options en raison de la gestion des moteurs de navigateur par Apple, bien que FingerprintJS note que les utilisateurs pourraient bloquer tout JavaScript par défaut et ne l'autoriser que sur des sites de confiance. Une mise à jour pourrait aussi arriver rapidement mais reste à savoir si le correctif sera inclus dans iOS 15.3 et macOS 12.2. « Les ingénieurs d'Apple ont commencé à travailler sur le bogue dimanche, ont fusionné les correctifs potentiels et ont marqué notre rapport comme résolu », ont indiqué les chercheurs de FingerprintJS. « Cependant, le bogue continue de persister pour les utilisateurs finaux jusqu'à ce que ces modifications soient publiées ».