Chrome · DevTools
CVE-2026-14120
Logic Error in DevTools
Overview
Low
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
content/browser/devtools/protocol/hidden_target_manager.cc
Patch
From e71492a8c1fd59a890167abb56cd6d8ed2b49485 Mon Sep 17 00:00:00 2001
From: Alex Rudenko <alexrudenko@chromium.org>
Date: Thu, 21 May 2026 01:57:03 -0700
Subject: [PATCH] Make sure hidden target processed are not marked as unused
Fixed: 513777411
Change-Id: I9d68229a18bdbd51dbf1fb72c9b0d5091e5a573a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7863860
Commit-Queue: Danil Somsikov <dsv@chromium.org>
Commit-Queue: Alex Rudenko <alexrudenko@chromium.org>
Reviewed-by: Danil Somsikov <dsv@chromium.org>
Auto-Submit: Alex Rudenko <alexrudenko@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1634121}
---
diff --git a/content/browser/devtools/protocol/hidden_target_manager.cc b/content/browser/devtools/protocol/hidden_target_manager.cc
index c4d80d5..06f3a00 100644
--- a/content/browser/devtools/protocol/hidden_target_manager.cc
+++ b/content/browser/devtools/protocol/hidden_target_manager.cc
@@ -5,6 +5,7 @@
#include "content/browser/devtools/protocol/hidden_target_manager.h"
#include "content/browser/devtools/web_contents_devtools_agent_host.h"
+#include "content/public/browser/render_process_host.h"
#include "content/public/browser/web_contents.h"
namespace content::protocol {
@@ -25,12 +26,22 @@
WebContents::Create(create_params);
// Required for the hidden WebContents to be properly disposed.
web_contents->SetDelegate(this);
+ // The hidden target hosts a `window.cdp` binding wired to a trusted
+ // browser-level DevTools session (BrowserToPageConnector). Its siteless
+ // about:blank navigation never reaches SetIsUsed(), so the process would
+ // otherwise be treated as a freely-reusable allows-any-site host and
+ // unrelated web content could be co-scheduled with it at the process limit.
+ // Mark the process used so IsSuitableHost() rejects it for sites that
+ // require a dedicated process.
+ web_contents->GetPrimaryMainFrame()->GetProcess()->SetIsUsed();
NavigationController::LoadURLParams load_params(url);
web_contents->GetController().LoadURLWithParams(load_params);
std::string target_id =
content::DevToolsAgentHost::GetOrCreateFor(web_contents.get())->GetId();
+ CHECK(!web_contents->GetPrimaryMainFrame()->GetProcess()->IsUnused())
+ << "Hidden target process is unexpectedly unused";
hidden_web_contents_.insert(std::move(web_contents));
return target_id;
}
Loading diff…
Original Bug Report
The reporter's bug is still restricted on the tracker. Chrome de-restricts security bugs ~30–90 days after the fix ships; a later run will backfill it here.
References
On This Page