Chrome · Mobile
CVE-2026-87595
Logic Error in Mobile
Overview
Low
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
ifios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm |
modified |
Files Changed
ios/chrome/browser/omnibox/coordinator/popup/omnibox_popup_coordinator.mmios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm
Patch
From c1b361f469d29daac4b4062daeb3ee01ba3aa81c Mon Sep 17 00:00:00 2001
From: Stepan Khapugin <stkhapugin@google.com>
Date: Tue, 28 Jul 2026 04:30:19 -0700
Subject: [PATCH] [iOS][omnibox] Limit favicon downloads to HTTP(s) and <5Mb.
Fixed: 513726466
Change-Id: Idcca8a9717368bbc1b52ce13b8f0ef76776d8856
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8073746
Commit-Queue: Stepan Khapugin <stkhapugin@chromium.org>
Reviewed-by: Radu Nitescu <radunitescu@google.com>
Cr-Commit-Position: refs/heads/main@{#1669358}
---
diff --git a/ios/chrome/browser/omnibox/coordinator/popup/omnibox_popup_coordinator.mm b/ios/chrome/browser/omnibox/coordinator/popup/omnibox_popup_coordinator.mm
index aa31021e..7493f817 100644
--- a/ios/chrome/browser/omnibox/coordinator/popup/omnibox_popup_coordinator.mm
+++ b/ios/chrome/browser/omnibox/coordinator/popup/omnibox_popup_coordinator.mm
@@ -50,6 +50,12 @@
#import "services/network/public/cpp/shared_url_loader_factory.h"
#import "ui/base/device_form_factor.h"
+namespace {
+
+const int64_t kMaxFaviconDownloadBytes = 1024 * 1024 * 5;
+
+} // namespace
+
@interface OmniboxPopupCoordinator () <OmniboxPopupMediatorProtocolProvider,
OmniboxPopupMediatorSharingDelegate>
@@ -100,6 +106,7 @@
std::unique_ptr<image_fetcher::ImageDataFetcher> imageFetcher =
std::make_unique<image_fetcher::ImageDataFetcher>(
self.profile->GetSharedURLLoaderFactory());
+ imageFetcher->SetImageDownloadLimit(kMaxFaviconDownloadBytes);
_omniboxImageFetcher = [[OmniboxImageFetcher alloc]
initWithFaviconLoader:IOSChromeFaviconLoaderFactory::GetForProfile(
diff --git a/ios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm b/ios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm
index 133d961d..099a642 100644
--- a/ios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm
+++ b/ios/chrome/browser/omnibox/model/omnibox_image_fetcher.mm
@@ -45,6 +45,11 @@
}
- (void)fetchImage:(GURL)imageURL completion:(void (^)(UIImage*))completion {
+ // As a precaution, don't fetch images from nonstandard schemes.
+ if (!imageURL.SchemeIsHTTPOrHTTPS()) {
+ completion(nil);
+ }
+
NSString* URL = [NSString cr_fromString:imageURL.spec()];
UIImage* cachedImage = [_cachedImages objectForKey:URL];
if (cachedImage) {
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