summaryrefslogtreecommitdiff
path: root/chromium
diff options
context:
space:
mode:
authorHao Liu <haoliuk@chromium.org>2023-01-03 16:28:33 +0000
committerMichael BrĂ¼ning <michael.bruning@qt.io>2023-04-03 15:23:37 +0000
commit0487d1dcb21e3c931cb5b1185b6419740570ab25 (patch)
tree7f1e020b31b0b319ceb0cf88328ed10bcc7b352c /chromium
parent76f2081b9302b19484531163c61fa80c55e9d8cd (diff)
downloadqtwebengine-chromium-0487d1dcb21e3c931cb5b1185b6419740570ab25.tar.gz
[Backport] CVE-2023-1233: Insufficient policy enforcement in Resource Timing
Manual backport of patch originally reviewed on https://chromium-review.googlesource.com/c/chromium/src/+/4116604: Fix extension fingerprinting via resource timing entry This CL is to prevent resource timing entry being emitted for resources that are initiated in the Non main world. Test cases are added for resources initiated from both the main world and non main world. Bug: 1045681 Change-Id: I309b54dae63f56e8d1d71e5c33507623b0c80389 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4116604 Reviewed-by: Yoav Weiss <yoavweiss@chromium.org> Reviewed-by: Lei Zhang <thestig@chromium.org> Commit-Queue: Hao Liu <haoliuk@chromium.org> Cr-Commit-Position: refs/heads/main@{#1088254} Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/468200 Reviewed-by: Michal Klocek <michal.klocek@qt.io>
Diffstat (limited to 'chromium')
-rw-r--r--chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc7
1 files changed, 7 insertions, 0 deletions
diff --git a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
index 454d42e9567..2b9edc46e57 100644
--- a/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
+++ b/chromium/third_party/blink/renderer/platform/loader/fetch/resource_fetcher.cc
@@ -2381,6 +2381,13 @@ void ResourceFetcher::PopulateAndAddResourceTimingInfo(
if (resource->GetResourceRequest().IsFromOriginDirtyStyleSheet())
return;
+ // Resource timing entries that correspond to resources fetched by extensions
+ // are precluded.
+ if (resource->Options().world_for_csp.get() &&
+ resource->Options().world_for_csp->IsIsolatedWorld()) {
+ return;
+ }
+
const KURL& initial_url =
resource->GetResourceRequest().GetRedirectInfo().has_value()
? resource->GetResourceRequest().GetRedirectInfo()->original_url