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

Issue 1270663002: Validate the Origin HTTP header in the browser process. (Closed)

Created:
5 years, 4 months ago by Charlie Reis
Modified:
5 years, 4 months ago
CC:
chromium-reviews, darin-cc_chromium.org, jam, site-isolation-reviews_chromium.org, ncarter (slow)
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Validate the Origin HTTP header in the browser process. Web renderer processes should not be able to set the Origin header to WebUI, Chrome App, or invalid origins. (Note that Chrome App origins may be allowed in some cases if they have guest processes with accessible_resources.) Most of these checks can be enforced by ChildProcessSecurityPolicy, but we call out to ContentBrowserClient for the extension/app checks. BUG=513502 TEST=Should only affect compromised renderer processes. Committed: https://crrev.com/3710b238717b14967922263070cac76257a55ac5 Cr-Commit-Position: refs/heads/master@{#343778}

Patch Set 1 #

Patch Set 2 : Invalid schemes, null origin #

Patch Set 3 : Fix CanRequest, update enum #

Patch Set 4 : Validate Chrome Apps as well #

Patch Set 5 : Clean up and add more tests #

Patch Set 6 : Add unit tests, fix bugs #

Patch Set 7 : Allow guests in Chrome Apps #

Patch Set 8 : Rebase #

Total comments: 24

Patch Set 9 : Fix review comments #

Patch Set 10 : Update comment #

Total comments: 12
Unified diffs Side-by-side diffs Delta from patch set Stats (+338 lines, -34 lines) Patch
M chrome/browser/chrome_content_browser_client.h View 1 2 3 4 5 6 7 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/chrome_content_browser_client.cc View 1 2 3 4 5 6 7 1 chunk +12 lines, -0 lines 0 comments Download
M chrome/browser/extensions/chrome_content_browser_client_extensions_part.h View 1 2 3 4 5 6 1 chunk +3 lines, -0 lines 0 comments Download
M chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc View 1 2 3 4 5 6 3 chunks +50 lines, -0 lines 12 comments Download
M content/browser/bad_message.h View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/child_process_security_policy_impl.h View 1 2 3 4 5 6 7 8 1 chunk +6 lines, -0 lines 0 comments Download
M content/browser/child_process_security_policy_impl.cc View 1 2 3 4 5 6 7 4 chunks +28 lines, -11 lines 0 comments Download
M content/browser/child_process_security_policy_unittest.cc View 1 2 3 4 5 6 7 8 7 chunks +62 lines, -6 lines 0 comments Download
M content/browser/loader/resource_dispatcher_host_impl.cc View 1 2 3 4 5 6 7 8 5 chunks +26 lines, -6 lines 0 comments Download
M content/browser/security_exploit_browsertest.cc View 1 2 3 4 5 6 7 8 9 8 chunks +122 lines, -10 lines 0 comments Download
M content/public/browser/browser_message_filter.cc View 1 2 3 4 5 2 chunks +9 lines, -1 line 0 comments Download
M content/public/browser/content_browser_client.h View 1 2 3 4 5 6 7 1 chunk +9 lines, -0 lines 0 comments Download
M content/public/browser/content_browser_client.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 1 2 3 4 5 6 7 8 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 23 (6 generated)
Charlie Reis
Nasko, can you take a look? This was trickier than I'd hoped, for a few ...
5 years, 4 months ago (2015-08-14 20:25:59 UTC) #4
nasko
Overall looks good. Just a few minor nits and questions. https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode189 ...
5 years, 4 months ago (2015-08-14 22:14:43 UTC) #5
Charlie Reis
Thanks! https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode189 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:189: DCHECK_CURRENTLY_ON(BrowserThread::UI); On 2015/08/14 22:14:42, nasko wrote: > Thanks ...
5 years, 4 months ago (2015-08-14 23:23:32 UTC) #6
nasko
LGTM https://codereview.chromium.org/1270663002/diff/160001/content/browser/security_exploit_browsertest.cc File content/browser/security_exploit_browsertest.cc (right): https://codereview.chromium.org/1270663002/diff/160001/content/browser/security_exploit_browsertest.cc#newcode115 content/browser/security_exploit_browsertest.cc:115: request.parent_render_frame_id = -1; On 2015/08/14 23:23:32, Charlie Reis ...
5 years, 4 months ago (2015-08-14 23:36:42 UTC) #7
Charlie Reis
https://codereview.chromium.org/1270663002/diff/160001/content/browser/security_exploit_browsertest.cc File content/browser/security_exploit_browsertest.cc (right): https://codereview.chromium.org/1270663002/diff/160001/content/browser/security_exploit_browsertest.cc#newcode371 content/browser/security_exploit_browsertest.cc:371: On 2015/08/14 23:36:41, nasko wrote: > On 2015/08/14 23:23:32, ...
5 years, 4 months ago (2015-08-17 18:32:21 UTC) #8
Charlie Reis
@kalman: Can you review chrome_content_browser_client_extensions_part.* for extension OWNERS? @lfg: Can you review the webview guest ...
5 years, 4 months ago (2015-08-17 18:37:30 UTC) #10
Ilya Sherman
histograms.xml lgtm
5 years, 4 months ago (2015-08-17 18:47:03 UTC) #11
lfg
https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/160001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode232 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:232: // itself, or by one if its guests if ...
5 years, 4 months ago (2015-08-17 19:01:54 UTC) #12
not at google - send to devlin
https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode223 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:223: // (If the extension was recently uninstalled, the tab ...
5 years, 4 months ago (2015-08-17 19:42:50 UTC) #13
Charlie Reis
https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode223 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:223: // (If the extension was recently uninstalled, the tab ...
5 years, 4 months ago (2015-08-17 19:49:59 UTC) #14
lfg
https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode237 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:237: // no accessible resources, this is illegal. On 2015/08/17 ...
5 years, 4 months ago (2015-08-17 19:51:35 UTC) #15
not at google - send to devlin
https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode232 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:232: // itself, or by one if its guests if ...
5 years, 4 months ago (2015-08-17 20:13:29 UTC) #16
Charlie Reis
https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc File chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc (right): https://codereview.chromium.org/1270663002/diff/200001/chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc#newcode234 chrome/browser/extensions/chrome_content_browser_client_extensions_part.cc:234: if (extension->is_platform_app() && On 2015/08/17 20:13:28, kalman wrote: > ...
5 years, 4 months ago (2015-08-17 21:19:59 UTC) #17
not at google - send to devlin
ok, lgtm
5 years, 4 months ago (2015-08-17 21:46:24 UTC) #18
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1270663002/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1270663002/200001
5 years, 4 months ago (2015-08-17 22:45:15 UTC) #21
commit-bot: I haz the power
Committed patchset #10 (id:200001)
5 years, 4 months ago (2015-08-18 00:12:25 UTC) #22
commit-bot: I haz the power
5 years, 4 months ago (2015-08-18 00:13:07 UTC) #23
Message was sent while issue was closed.
Patchset 10 (id:??) landed as
https://crrev.com/3710b238717b14967922263070cac76257a55ac5
Cr-Commit-Position: refs/heads/master@{#343778}

Powered by Google App Engine
This is Rietveld 408576698