Sur mobile, le W3C, l'organisme chargé de superviser les standards du web, planche sur des interfaces de programmation visant à établir une communication avec les composants du téléphone. Un site web pourra par exemple accéder au microphone pour effectuer une requête vocale, tandis qu'un autre pourra exploiter les API de l'explorateur de fichiers pour y charger une photo. C'était le principe même de Firefox OS. En 2015, ce consortium avait levé le voile sur des interfaces de programmation permettant de visualiser l'état de la batterie.
Les Battery Status API avaient pour objectif d'accéder au niveau de batterie du smartphone pour optimiser le surf. Si l'autonomie restante passait sous un certain seuil, le site pouvait alors transmettre au mobinaute une page plus légère, par exemple, sans JavaScript, sans publicité et avec une feuille de style moins élaborée.
Seulement des chercheurs ont remarqué qu'avec ces interfaces, il était possible de déterminer l'heure de la dernière charge ou encore le temps restant en secondes pour le cycle en cours. Au total, en regroupant toutes ces données, 14 millions de combinaisons étaient possibles. Par ailleurs, ces informations ne se rafraîchissant que toutes les 30 secondes, il est donc possible de suivre le surf d'un internaute sur une courte durée pour, par exemple, réactiver un cookie.
Selon The Register, Lukasz Olejnik, l'un des chercheurs ayant documenté cette vulnérabilité, explique sur son blog que ces API seront retirées de Firefox dans sa version 52. Il ajoute qu'elles seront également supprimées du moteur de rendu WebKit - bien qu'elles n'aient pas été totalement implémentées au sein de Safari.