My favorites | Sign in
Project Home Downloads Wiki Issues Code Search
New issue   Search
for
  Advanced search   Search tips   Subscriptions
Issue 118693: Chrome leaks installed extensions to all websites
53 people starred this issue and may be notified of changes. Back to list
Status:  WontFix
Owner:  ----
Closed:  Jul 2013
Cc:  mpcomplete@chromium.org, battre@chromium.org


Sign in to add a comment
 
Reported by benjamin...@gmail.com, Mar 16, 2012
PRIVACY ISSUE
Chrome shares a list of all browser extensions I have installed with every web site I visit even when I am browsing in incognito mode.  I am concerned not only with the privacy implications of this bug, but also with the security implications.  Revealing the browser extensions installed makes it possible for malicious websites to sniff for known vulnerabilities in those extensions.

VERSION:
Affects all versions of Chrome on all Operating Systems.  I am running the latest stable version of Chrome (17.0.963.79) on Windows 7.

REPRODUCTION STEPS
Reproduction of this issue is described on the following blog:
http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html

A proof of concept is illustrated on the following page:
http://koto.github.com/blog-kotowicz-net-examples/chrome-addons/enumerate.html

It'd disturbing that sites may know what extensions I have installed.  E.g. I may not want it known that I have some of the following extensions installed:
https://chrome.google.com/webstore/detail/oeplgpkngobmganokjklhaahdmbjglgh
https://chrome.google.com/webstore/detail/cgnkeghikpbknilcopgpiepciaenbfdi
https://chrome.google.com/webstore/detail/gonbigodpnfghidmnphnadhepmbabhij
https://chrome.google.com/webstore/detail/icfmifhmhincplbljbejddhejjghdlnb
https://chrome.google.com/webstore/detail/foonoiaflphdobhnlakbdnffjcknbbmk

Mar 16, 2012
#2 battre@chromium.org
Matt, do you now whether access to chrome-extensions:// URLs is necessary for content scripts?
Status: Available
Cc: mpcomplete@chromium.org battre@chromium.org
Labels: -Area-Undefined Area-Internals Feature-Extensions
Mar 16, 2012
#3 praxi...@gmail.com
Interestingly the enumerator script doesn't list all extensions, only some of them, Arch Linux x64, Chrome 19.0.1068.1 dev
Mar 16, 2012
#4 quasim...@gmail.com
BUT this is necessary while NOT in incongito mode..agree?
Mar 16, 2012
#5 apbm...@gmail.com
if Chrome wont tell them, they can just ask Google?
Mar 16, 2012
#6 alex.og...@gmail.com
I believe the addon enumerator just checks against a list of common extension identifiers. There's not actually a way to list all installed extensions, just a way to check if an extension is present or not. It's similar in concept to the :visited CSS hack to check if a given URL is in someone's history. http://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/
Mar 16, 2012
#7 benjamin...@gmail.com
Yes, correct.  It just checks against common extension identifiers.  I probably did not word the original bug description well enough to make that clear.  I think this is a bit worse than the :visited CSS hack though since the space of possible IDs is so much smaller.  I could probably crawl the Google web store and get a list of all possible extension identifiers and put them in a JS file that's less than 1MB in size, so in effect this can reveal every single extension you have installed even if the proof of concept does not.
Mar 16, 2012
#8 abarth@chromium.org
Note: This is fixed in manifest_version 2:

"A package's resources are no longer available by default to external websites (as the src of an image, or a script tag). If you want a website to be able to load a resource contained in your package, you'll need to explicitly whitelist it via the web_accessible_resources manifest attribute."

https://code.google.com/chrome/extensions/dev/manifestVersion.html
Mar 16, 2012
#9 benjamin...@gmail.com
Cool, that's good to know.  I'll be sure to update my extensions.  Thanks Adam.
Mar 16, 2012
#10 a...@chromium.org
The incognito portion of this is indeed a bug (probably a regression). I've split off  bug 118721  for that. Thank you very much for reporting it.

As for the other part, as of Chrome 19, extension developers can opt into hiding their resources using the web_accessible_resource manifest attribute even without switching to manifest_version=2:

https://code.google.com/chrome/extensions/dev/manifest.html#web_accessible_resources

manifest_version=2 simply switches the default. Instead of web_accessible_resources defaulting to off, it defaults to on.
Mar 16, 2012
#11 a...@chromium.org
benjamin, you should not update your extension to manifest_version=2 until Chrome 18 is deployed to the stable channel. manifest_version 2 is not backward compatible, so your extension will not run on earlier Chrome versions.

You can use the web_accessible_resources feature. In newer Chromes, it will do the right thing. Older Chromes will ignore it.
Mar 16, 2012
#12 benjamin...@gmail.com
Yep, got that part.  Thanks again for the quick response.
Mar 29, 2012
#13 battre@chromium.org
I have merged  bug 120804  to reduce the number of reports on this issue. It contains an interesting proposal, please read it.
Mar 10, 2013
#14 bugdro...@chromium.org
(No comment was entered for this change.)
Labels: -Area-Internals -Feature-Privacy -Feature-Extensions Cr-Platform-Extensions Cr-Privacy Cr-Internals
Jul 11, 2013
#15 DHNishi
According to the manifest version 1 support schedule, Chrome will no longer load manifest version 1 extensions in January 2014.

Because this bug is specific to manifest version 1, it should be closed out as WontFix by that time.

Source: http://developer.chrome.com/extensions/manifestVersion.html 
Jul 11, 2013
#16 mpcomplete@chromium.org
Regardless of when we remove support for manifest v1, we're not going to take further action on this bug. Closing.
Status: WontFix
Nov 10, 2013
#17 jschuh@chromium.org
Bulk security flag update.
Labels: Type-Bug-Security
Sign in to add a comment

Powered by Google Project Hosting