Chrome · Navigation
CVE-2026-15130
Logic Error in Navigation
Overview
High
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
content/browser/renderer_host/navigation_request.cc
Patch
From 85fede76fe078d4ea9622a0c37b81c6852b0cf93 Mon Sep 17 00:00:00 2001 From: Alex Moshchuk <[email protected]> Date: Tue, 23 Jun 2026 14:10:35 -0700 Subject: [PATCH] Restore CHECK for CanAccessOrigin(). The CanAccessOrigin() check in NavigationRequest::GetOriginForURLLoaderFactoryAfterResponse() was always a CHECK to begin with and was incorrectly downgraded to a DCHECK in https://chromium-review.googlesource.com/c/chromium/src/+/7748832. Note: there was always an ongoing trickle of known crashes resulting from this check (going back to at least 2020), and this is tracked is issues such as https://crbug.com/469092870 and https://crbug.com/463029421. These reports will probably reappear once this CL lands and might be seen as a new spike; please avoid reverting this CL due to that, as this check turns potential security problems into stability ones, so it's important to keep. Bug: 526541544 Change-Id: Ib077b83303fb8633d60b773a30529900008b62a7 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7986809 Commit-Queue: Alex Moshchuk <[email protected]> Reviewed-by: Charlie Reis <[email protected]> Cr-Commit-Position: refs/heads/main@{#1651274} --- diff --git a/content/browser/renderer_host/navigation_request.cc b/content/browser/renderer_host/navigation_request.cc index f638782..5bd7686 100644 --- a/content/browser/renderer_host/navigation_request.cc +++ b/content/browser/renderer_host/navigation_request.cc @@ -9722,14 +9722,16 @@ // policy of the process being used. This is because the content is loaded // from the MHTML archive within the process. There are no data loaded from // the network. + // + // Note: This is a security-critical check that needs to be a CHECK rather + // than a DCHECK, and it should never be reverted, even if there are crashes + // in the wild. if (HasRenderFrameHost() && !GetRenderFrameHost()->ShouldBypassSecurityChecksForErrorPage(this) && !IsForMhtmlSubframe()) { int process_id = GetRenderFrameHost()->GetProcess()->GetDeprecatedID(); auto* policy = ChildProcessSecurityPolicyImpl::GetInstance(); - // TODO(https://crbug.com/526541544): CHECK-exclusion: Convert to CHECK once - // we are sure this isn't hit. - DCHECK(policy->CanAccessOrigin( + CHECK(policy->CanAccessOrigin( process_id, origin, ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin)); }
Loading diff…
Original Bug Report
reported by [email protected]
[DCHECK-to-CHECK] NavigationRequest::GetOriginForURLLoaderFactoryAfterResponse, failing DCHECK(policy->CanAccessOrigin(
This bug is part of the project: http://go/check-content-navigation (Systematic Conversion of DCHECKs to CHECKs in Core Navigation).
This specific DCHECK was previously upgraded to a CHECK, but had to be reverted back to a DCHECK because it was reached in the wild (which occurred in about 15% of the converted instances).
This bug is tracked to resolve this specific invariant failure so we can eventually upgrade it back to a CHECK.
Context:
- File: content/browser/renderer_host/navigation_request.cc:9730
- Function: NavigationRequest::GetOriginForURLLoaderFactoryAfterResponse
- Source Link
9725: if (HasRenderFrameHost() &&
9726: !GetRenderFrameHost()->ShouldBypassSecurityChecksForErrorPage(this) &&
9727: !IsForMhtmlSubframe()) {
9728: int process_id = GetRenderFrameHost()->GetProcess()->GetDeprecatedID();
9729: auto* policy = ChildProcessSecurityPolicyImpl::GetInstance();
=> 9730: // TODO(https://crbug.com/526541544): CHECK-exclusion: Convert to CHECK once
9731: // we are sure this isn't hit.
9732: DCHECK(policy->CanAccessOrigin(
9733: process_id, origin,
9734: ChildProcessSecurityPolicyImpl::AccessType::kCanCommitNewOrigin));
9735: }
9736:
9737: return origin;
- http://go/check-content-navigation
- https://crbug.com/526541544
- https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/navigation_request.cc;l=9730?q="TODO(https://crbug.com/526541544)"&ss=chromium/chromium/src
- https://source.chromium.org/chromium/chromium/src/+/main:content/browser/renderer_host/navigation_request.cc;l=9730?q=%22TODO%28https%3A//crbug.com/526541544%29%22&ss=chromium%2Fchromium%2Fsrc
References
On This Page