Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(184)

Issue 2437753003: Tighten IO thread blob/filesystem URL checks for apps with webview permission. (Closed)

Created:
4 years, 2 months ago by alexmos
Modified:
4 years, 2 months ago
CC:
chromium-reviews, chromium-apps-reviews_chromium.org, cbentzel+watch_chromium.org, jam, darin-cc_chromium.org, extensions-reviews_chromium.org, site-isolation-reviews_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Tighten IO thread blob/filesystem URL checks for apps with webview permission. The IO thread blob/filesystem URL security checks were originally introduced in r419019 and r422954. This was merged back to M54 and M55. They were later moved to the UI thread (into ExtensionNavigationThrottle) in r424937 to make them compatible with PlzNavigate. However, that only exists in M56. Per linked bug, we need to tighten the security check currently in M54 and M55 for apps with a "webview" permission where the problematic blob/filesystem URL requests aren't made from the guest process. This is the plan for fixing this: 1. https://codereview.chromium.org/2435593007/: Reintroduce these IO thread checks on M56. 2. <This CL> Tighten the checks for the scenario above using ChildProcessSecurityPolicy. 3. Merge the CL from step 2 back to M55 and M54. 4. Remove these checks from M56 and tighten the checks in ExtensionNavigationThrottle. The goal of this CL is to determine if a request is being made by a guest process on the IO thread. It relies on the fact that ChildProcessSecurityPolicyImpl already has the origin "chrome-extension://<appid>" in the origin_set_ for the guest process, thanks to the GrantOrigin that was added to WebViewGuest::CreateWebContents in r422976 as part of fixing issue 652784. Therefore, it's sufficient to check whether the requested nested URL's origin is in the origin_set_ for the process making the request. BUG=656752 Committed: https://crrev.com/f7af135c51a99daba0cdb5ef204465ff995802e4 Cr-Commit-Position: refs/heads/master@{#426870}

Patch Set 1 #

Total comments: 9

Patch Set 2 : Add base::debug::Alias for two vars before DWOC #

Total comments: 7

Patch Set 3 : Address mmenke's comments #

Patch Set 4 : Add ProcessManager checks to the test #

Total comments: 2

Patch Set 5 : arraysize #

Unified diffs Side-by-side diffs Delta from patch set Stats (+155 lines, -2 lines) Patch
M chrome/browser/extensions/process_manager_browsertest.cc View 1 2 3 2 chunks +107 lines, -0 lines 0 comments Download
M chrome/browser/net/chrome_extensions_network_delegate.cc View 1 2 3 4 2 chunks +22 lines, -1 line 0 comments Download
M content/browser/child_process_security_policy_impl.h View 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/child_process_security_policy_impl.cc View 3 chunks +15 lines, -1 line 0 comments Download
M content/public/browser/child_process_security_policy.h View 1 chunk +9 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 40 (24 generated)
alexmos
Nick, can you please take a look? This is the approach we coded up along ...
4 years, 2 months ago (2016-10-20 16:42:37 UTC) #7
ncarter (slow)
lgtm 3 points of discussion and 1 suggestion for debug info. https://codereview.chromium.org/2437753003/diff/1/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): ...
4 years, 2 months ago (2016-10-20 17:46:51 UTC) #8
alexmos
Thanks! https://codereview.chromium.org/2437753003/diff/1/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/1/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode220 chrome/browser/net/chrome_extensions_network_delegate.cc:220: policy->HasSpecificPermissionForOrigin(info->GetChildID(), origin); On 2016/10/20 17:46:50, ncarter wrote: > ...
4 years, 2 months ago (2016-10-20 18:40:23 UTC) #11
ncarter (slow)
https://codereview.chromium.org/2437753003/diff/1/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/1/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode225 chrome/browser/net/chrome_extensions_network_delegate.cc:225: base::debug::DumpWithoutCrashing(); On 2016/10/20 18:40:23, alexmos wrote: > On 2016/10/20 ...
4 years, 2 months ago (2016-10-20 19:05:56 UTC) #12
alexmos
sky@, can you please review this for OWNERS? This is a follow-up to https://codereview.chromium.org/2435593007.
4 years, 2 months ago (2016-10-20 19:18:37 UTC) #14
sky
Similar comment to last one: +mmenke for c/b/net and +asargent for c/b/extensions
4 years, 2 months ago (2016-10-20 20:45:08 UTC) #18
mmenke
https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode225 chrome/browser/net/chrome_extensions_network_delegate.cc:225: base::debug::Alias(&origin); include base/debug/alias.h. https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode225 chrome/browser/net/chrome_extensions_network_delegate.cc:225: base::debug::Alias(&origin); Also, I don't ...
4 years, 2 months ago (2016-10-20 21:00:31 UTC) #20
asargent_no_longer_on_chrome
https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc File chrome/browser/extensions/process_manager_browsertest.cc (right): https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc#newcode878 chrome/browser/extensions/process_manager_browsertest.cc:878: // WebViewTest.Shim_TestBlobURL. Maybe I'm missing something, but does this ...
4 years, 2 months ago (2016-10-20 22:14:25 UTC) #21
alexmos
https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode225 chrome/browser/net/chrome_extensions_network_delegate.cc:225: base::debug::Alias(&origin); On 2016/10/20 21:00:30, mmenke wrote: > include base/debug/alias.h. ...
4 years, 2 months ago (2016-10-21 00:18:57 UTC) #22
alexmos
https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc File chrome/browser/extensions/process_manager_browsertest.cc (right): https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc#newcode878 chrome/browser/extensions/process_manager_browsertest.cc:878: // WebViewTest.Shim_TestBlobURL. On 2016/10/20 22:14:25, Antony Sargent wrote: > ...
4 years, 2 months ago (2016-10-21 00:49:59 UTC) #25
mmenke
c/b/net LGTM https://codereview.chromium.org/2437753003/diff/60001/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/60001/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode229 chrome/browser/net/chrome_extensions_network_delegate.cc:229: sizeof(origin_copy)); Know it doesn't really matter, but ...
4 years, 2 months ago (2016-10-21 15:44:21 UTC) #28
alexmos
https://codereview.chromium.org/2437753003/diff/60001/chrome/browser/net/chrome_extensions_network_delegate.cc File chrome/browser/net/chrome_extensions_network_delegate.cc (right): https://codereview.chromium.org/2437753003/diff/60001/chrome/browser/net/chrome_extensions_network_delegate.cc#newcode229 chrome/browser/net/chrome_extensions_network_delegate.cc:229: sizeof(origin_copy)); On 2016/10/21 15:44:21, mmenke wrote: > Know it ...
4 years, 2 months ago (2016-10-21 16:16:41 UTC) #31
asargent_no_longer_on_chrome
lgtm https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc File chrome/browser/extensions/process_manager_browsertest.cc (right): https://codereview.chromium.org/2437753003/diff/20001/chrome/browser/extensions/process_manager_browsertest.cc#newcode878 chrome/browser/extensions/process_manager_browsertest.cc:878: // WebViewTest.Shim_TestBlobURL. On 2016/10/21 00:49:59, alexmos wrote: > ...
4 years, 2 months ago (2016-10-21 17:33:18 UTC) #32
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2437753003/80001
4 years, 2 months ago (2016-10-21 19:39:06 UTC) #37
commit-bot: I haz the power
Committed patchset #5 (id:80001)
4 years, 2 months ago (2016-10-21 20:01:06 UTC) #38
commit-bot: I haz the power
4 years, 2 months ago (2016-10-21 20:03:33 UTC) #40
Message was sent while issue was closed.
Patchset 5 (id:??) landed as
https://crrev.com/f7af135c51a99daba0cdb5ef204465ff995802e4
Cr-Commit-Position: refs/heads/master@{#426870}

Powered by Google App Engine
This is Rietveld 408576698