New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 616488 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Out until 24 Jan
Closed: Jun 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug-Security



Sign in to add a comment

Security: web_accessible_resources can be bypassed when Chrome runs in a site isolation mode.

Project Member Reported by nasko@chromium.org, Jun 1 2016

Issue description

VULNERABILITY DETAILS
When Chrome runs in --isolate-extension or --site-per-process mode, it is vulnerable to bypass of extensions web_accessible_resources restrictions. The core problem existed in regular mode Chrome, but is reported and fixed in  issue 576867 .

VERSION
Chrome Version: 53.0.2753.0
Operating System: All platforms with extensions support.

REPRODUCTION CASE
 Issue 576867  describes the repro steps, copied here for convenience:
1. Create an iframe element with 'src=' to an allowed page of the extension.
2. Create an 'onload' event, which calls a javascript function.
3. This function should only change the 'src=' of the iframe to a non-allowed page of the extension.
 

Comment 1 by creis@chromium.org, Jun 1 2016

Components: Platform>Extensions Internals>Sandbox>SiteIsolation

Comment 2 by nasko@chromium.org, Jun 2 2016

As I've been thinking about solving this, I'm not sure if it is indeed a problem. It all depends on what is the original threat model for web_accessible_resources. With --isolate-extensions, the non-accessible resource is still loaded in the iframe, which runs in the same process as the extension, so there is no data leakage to a regular renderer process which can be under the control of an attacker.
I'll try to poke around and see if I can find what are the attack vectors we are looking to protect from, so a decision can be made whether this is indeed a bug or not.

Comment 3 by f...@chromium.org, Jun 2 2016

Labels: Security_Impact-Stable Security_Severity-Low
Project Member

Comment 4 by sheriffbot@chromium.org, Jun 3 2016

Labels: -Pri-1 Pri-2
Project Member

Comment 5 by bugdroid1@chromium.org, Jun 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b9164c43d2900c967f4fdb5ebfc4812f7e914116

commit b9164c43d2900c967f4fdb5ebfc4812f7e914116
Author: nasko <nasko@chromium.org>
Date: Tue Jun 07 01:21:35 2016

Fix web_accesible_resources enforcement for Site Isolation.

When --isolate-extensions or --site-per-process modes are enabled, all
extensions frames run in extension processes and are not mixed in regular
web renderers. This causes a problem with security checks for
web_accessible_resources, which allow all navigations to extension pages
when they are performed in extension process. This is no longer true and
this patch addresses this by using a NavigationThrottle to perform the
proper checks on the UI thread (also PlzNavigate compatible).

BUG= 616488 
CQ_INCLUDE_TRYBOTS=tryserver.chromium.linux:linux_site_isolation

Review-Url: https://codereview.chromium.org/2042483002
Cr-Commit-Position: refs/heads/master@{#398189}

[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/chrome/browser/chrome_content_browser_client.cc
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/chrome/browser/extensions/extension_protocols_unittest.cc
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/chrome/test/data/extensions/platform_apps/web_view/shim/main.js
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/content/browser/frame_host/navigation_handle_impl.cc
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/content/browser/loader/navigation_resource_throttle.cc
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/content/public/browser/navigation_throttle.h
[add] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/extensions/browser/extension_navigation_throttle.cc
[add] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/extensions/browser/extension_navigation_throttle.h
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/extensions/browser/extension_protocols.cc
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/extensions/extensions.gypi
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/extensions/test/data/web_view/apitest/main.js
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/testing/buildbot/filters/isolate-extensions.browser_tests.filter
[modify] https://crrev.com/b9164c43d2900c967f4fdb5ebfc4812f7e914116/testing/buildbot/filters/site-per-process.browser_tests.filter

Comment 6 by nasko@chromium.org, Jun 7 2016

Labels: -Proj-IsolateExtensions-BlockingLaunch
Removing the blocking label as the security bug is now fixed. I still need to add some unit tests, so not resolving as fixed yet.
Status: Fixed (was: Assigned)
Lets keep this closed, you can add more tests to the same bug or file another tracking functional bug, but we need to track security fix here.
Project Member

Comment 8 by sheriffbot@chromium.org, Jun 11 2016

Labels: -Restrict-View-SecurityTeam Restrict-View-SecurityNotify
Project Member

Comment 9 by sheriffbot@chromium.org, Sep 17 2016

Labels: -Restrict-View-SecurityNotify
This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 10 by sheriffbot@chromium.org, Oct 1 2016

This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 11 by sheriffbot@chromium.org, Oct 2 2016

This bug has been closed for more than 14 weeks. Removing security view restrictions.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Labels: allpublic

Sign in to add a comment