Web applications can exploit browser extensions to access privileged capabilities and steal sensitive user information, including credentials, a researcher has discovered.
While web applications are bound by the Same Origin Policy (SOP) and cannot access data from other web applications unless mechanisms such as Cross-Origin Resource Sharing (CORS) are implemented into both, browser extensions are not subject to the same rule, meaning they can read and write data on web applications.
The extensions also have access to a broad range of sensitive user information, including browsing history, bookmarks, credentials (cookies) and list of installed extensions, and can download files and store them on the user’s device.
Browser extensions and web applications are executed in separate contexts, but they can interact by exchanging messages, regardless of the browser. This allows web applications to exploit extension privileged capabilities and steal sensitive user information, Dolière Francis Somé from the Université Côte d’Azur, Inria, France, says in a research paper (PDF).
The researcher analyzed the communication interfaces exposed to web applications by Chrome, Firefox, and Opera browser extensions and discovered that many of them can be exploited for access to privileged capabilities.
“Through extensions’ APIs, web applications can bypass SOP and access user data on any other web application,” Somé explains.
“Our results demonstrate that the communications between browser extensions and web applications pose serious security and privacy threats to browsers, web applications and more importantly to users,” the researcher continues.
Using a static analyzer capable of detecting suspicious communications between browser extensions and web applications, the researcher looked into a total of 78,315 extensions and identified 3,996 potentially suspicious extensions in Chrome, Firefox and Opera.
Manual analysis then revealed 197 unique extensions (171 for Chrome, 16 for Firefox, and 10 for Opera) that can be maliciously exploited by web applications or scripts injected into these web apps.
These extensions allow web apps to execute arbitrary code in the context of extensions (with the same privileges), bypass SOP and access user information, store and retrieve data in the extensions’ permanent storage, and trigger the download of arbitrary files and store them on the user device.
While 55% of the extensions have less than 1000 users, the remainder 45% have thousands of installs, the researcher says. Categories with the largest number of exploitable extensions include productivity (81), social and communication (48), fun (19), accessibility (17), and developer tools (15).
The findings were reported to the vendors in October 2018 and all three acknowledged the issues. Firefox has removed the extensions and Opera removed 8 out of 10. Discussion with the Chrome team continues on the proper action to take on these extensions.
“That notwithstanding, we argue that browser vendors need to review extensions more rigorously, in particular take into consideration the use of message passing interfaces in extensions. We think that tools such our static analyzer can help in identifying and fixing the security and privacy threats we have identified in this paper,” Somé, who also proposes countermeasures, says.