Google has finally patched a privacy vulnerability in its Chrome web browser for Android that exposes users’ device model and firmware version, eventually enabling remote attackers to identify unpatched devices and exploit known vulnerabilities.
The vulnerability, which has not yet given any CVE number, is an information disclosure bug that resides in the way the Google Chrome for Android generates ‘User Agent’ string containing the Android version number and build tag information, which includes device name and its firmware build.
This information is also sent to applications using WebView and Chrome Tabs APIs, which can be used to track users and fingerprint devices on which they are running.
For example: Mozilla/5.0 (Linux; Android 5.1.1; Nexus 6 Build/LYZ28K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.34 Mobile Safari/537.36
Yakov Shafranovich, a contributor at Nightwatch Cybersecurity firm, initially reported this issue to Google three years ago, but at the time, the company rejected the bug report saying that its browser app was “working as intended.”
“While Android does offer the ability to override these (via WebSettings.setUserAgent() in WebView), most applications choose not to do that to assure compatibility by relying on the default header,” Shafranovich said.
“For many devices, this can be used to identify not only the device itself but also the carrier on which it is running and from that the country.”
This privacy issue can also be used to determine the security patch level on the device and vulnerabilities the device is vulnerable to, which attackers can exploit in a targeted fashion.
However, Google has now partially addressed the issue with the release of Chrome 70 in October 2018, after a new bug report was filed earlier this year by a separate user on Google’s Chromium forum.
According to the researcher, the Chrome 70 update only removed the firmware build information from the header, but the hardware model identifier is still available in the User Agent.
However, since the update only applies to the app itself and not to the WebView implementation, application developers are recommended to manually override the User Agent configuration in their apps.
“Also, unlike the desktop Chrome, on Android no extensions or overrides are possible to change the header other than the “Request Desktop Site” option on the browser itself for the current session,” Shafranovich says in a new post.
“Both the vendor and MITRE refused to issue a CVE number to track this issue since they do not consider it to be security related”
Shafranovich believes that all versions of Chrome for Android prior to version 70 are affected by the vulnerability, so all users are highly recommended to upgrade to Chrome version 70 or later.