Low CVSS 4.3 chrome Input Validation 🔧 Commit mapped

Overview

Low
Severity
4.3
CVSS
No
Exploited ITW
Fixed
Fix Status
ImpactInsufficient validation of untrusted input in Chrome for iOS
DescriptionInsufficient validation of untrusted input in Chrome for iOS
ComponentChrome for iOS
Sub-componentiOS
Bug ClassInput Validation
Tracker503779807
Fix commit3a5751cee142 (chromium/src) +6/-2
CWECWE-20 (Improper input validation)
CVSS vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N
CISA KEVNot listed
CreditedGoogle
Reported2026-04-17 (per vendor advisory)
Fix landed2026-05-26 (public git)
Disclosed2026-06-30
Patch gap35 days — fix public in source before the advisory

Changed Functions

FunctionChangeNotes
for
ios/chrome/app/task_request_user_activity.mm
modified
for
ios/chrome/browser/intents/model/user_activity_browser_agent.mm
modified

Files Changed

  • ios/chrome/app/task_request_user_activity.mm
  • ios/chrome/browser/intents/model/user_activity_browser_agent.mm
From 3a5751cee142e1fae5a8eeccb7e4b5f07a8b4170 Mon Sep 17 00:00:00 2001
From: Federica Germinario <fedegermi@google.com>
Date: Tue, 26 May 2026 02:42:45 -0700
Subject: [PATCH] [ios] Restrict Siri Shortcut intents to HTTP and HTTPS schemes

This CL adds scheme validation to URLs extracted from Siri Shortcut
intents (OpenInChromeIntent and OpenInChromeIncognitoIntent).
Previously, these intents did not validate schemes. Now, only valid
URLs with HTTP or HTTPS schemes are processed, and others are filtered
out.

This fix is applied to both the legacy UserActivityBrowserAgent and the
modernized TaskRequestForUserActivity flows.

Fixed: 503779807
Change-Id: I496fcaaf79215d914d2aafe8ecbcd94dbe89e463
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7867540
Commit-Queue: Mark Cogan <marq@chromium.org>
Auto-Submit: Federica Germinario <fedegermi@google.com>
Reviewed-by: Mark Cogan <marq@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1636014}
---

diff --git a/ios/chrome/app/task_request_user_activity.mm b/ios/chrome/app/task_request_user_activity.mm
index 1c733c1..6777d5b 100644
--- a/ios/chrome/app/task_request_user_activity.mm
+++ b/ios/chrome/app/task_request_user_activity.mm
@@ -525,7 +525,8 @@
   std::vector<GURL> urls;
   urls.reserve(intent_urls.count);
   for (NSURL* intent_url in intent_urls) {
-    if (GURL url = net::GURLWithNSURL(intent_url); url.is_valid()) {
+    if (GURL url = net::GURLWithNSURL(intent_url);
+        url.is_valid() && url.SchemeIsHTTPOrHTTPS()) {
       urls.push_back(std::move(url));
     }
   }
diff --git a/ios/chrome/browser/intents/model/user_activity_browser_agent.mm b/ios/chrome/browser/intents/model/user_activity_browser_agent.mm
index f4d59950..e4797bc 100644
--- a/ios/chrome/browser/intents/model/user_activity_browser_agent.mm
+++ b/ios/chrome/browser/intents/model/user_activity_browser_agent.mm
@@ -68,7 +68,10 @@
 std::vector<GURL> CreateGURLVectorFromIntentURLs(NSArray<NSURL*>* intent_urls) {
   std::vector<GURL> urls;
   for (NSURL* url in intent_urls) {
-    urls.push_back(net::GURLWithNSURL(url));
+    GURL gurl = net::GURLWithNSURL(url);
+    if (gurl.is_valid() && gurl.SchemeIsHTTPOrHTTPS()) {
+      urls.push_back(gurl);
+    }
   }
   return urls;
 }
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.