summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDanil Somsikov <dsv@chromium.org>2023-01-20 15:04:49 +0000
committerMichael BrĂ¼ning <michael.bruning@qt.io>2023-02-15 14:00:42 +0000
commitf40ad614a15a5f2a93eb42f3e21940a0957ac2d3 (patch)
treef8f3a1de5b935b6a8e91592bf3f054d073e1351e
parent098ae23e11e8948640e7003a29fd6a137a3525e4 (diff)
downloadqtwebengine-chromium-f40ad614a15a5f2a93eb42f3e21940a0957ac2d3.tar.gz
[Backport] CVE-2023-0703: Type Confusion in DevTools
Cherry-pick of patch originally reviewed on https://chromium-review.googlesource.com/c/chromium/src/+/4183821: Check arguments type in DevToolsHost.showContextMenuAtPoint (cherry picked from commit 954e76692edf965e588ee80350c20ad403f82ea0) Bug: 1405574 Change-Id: Id06637839096402e05a2278b06f2f84b3037e21d Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4165089 Auto-Submit: Danil Somsikov <dsv@chromium.org> Commit-Queue: Kouhei Ueno <kouhei@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Kouhei Ueno <kouhei@chromium.org> Cr-Original-Commit-Position: refs/heads/main@{#1093205} Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/4183821 Cr-Commit-Position: refs/branch-heads/5481@{#498} Cr-Branched-From: 130f3e4d850f4bc7387cfb8d08aa993d288a67a9-refs/heads/main@{#1084008} Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/460495 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc b/chromium/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
index 1b58cf41d25..0732e2d0cef 100644
--- a/chromium/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
+++ b/chromium/third_party/blink/renderer/bindings/core/v8/custom/v8_dev_tools_host_custom.cc
@@ -65,8 +65,13 @@ static bool PopulateContextMenuItems(v8::Isolate* isolate,
std::vector<MenuItemInfo>& items) {
v8::Local<v8::Context> context = isolate->GetCurrentContext();
for (uint32_t i = 0; i < item_array->Length(); ++i) {
- v8::Local<v8::Object> item =
- item_array->Get(context, i).ToLocalChecked().As<v8::Object>();
+ v8::Local<v8::Value> item_value =
+ item_array->Get(context, i).ToLocalChecked();
+ if (!item_value->IsObject()) {
+ return false;
+ }
+ v8::Local<v8::Object> item = item_value.As<v8::Object>();
+
v8::Local<v8::Value> type;
v8::Local<v8::Value> id;
v8::Local<v8::Value> label;