Chrome · Updater
CVE-2026-7997
Logic Error in Updater
Overview
Low
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
chrome/updater/mac/privileged_helper/service.mm
Patch
From de06591e9e1e600355ceb627b49fd9cbe5ee1d86 Mon Sep 17 00:00:00 2001
From: Joshua Pawlicki <waffles@chromium.org>
Date: Wed, 15 Apr 2026 15:59:06 -0700
Subject: [PATCH] Privileged Helper: Verify XPC connection
Bug: 487960705
Change-Id: Iefb022003c6d5e66d4876dad3ae11c0142b3b288
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7684953
Auto-Submit: Joshua Pawlicki <waffles@chromium.org>
Reviewed-by: Adam Norberg <norberg@google.com>
Commit-Queue: Adam Norberg <norberg@google.com>
Cr-Commit-Position: refs/heads/main@{#1615471}
---
diff --git a/chrome/updater/mac/privileged_helper/service.mm b/chrome/updater/mac/privileged_helper/service.mm
index 11ca840..bb17d2b 100644
--- a/chrome/updater/mac/privileged_helper/service.mm
+++ b/chrome/updater/mac/privileged_helper/service.mm
@@ -22,6 +22,7 @@
#include "base/functional/callback.h"
#include "base/logging.h"
#include "base/mac/mac_util.h"
+#include "base/mac/process_requirement.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/process/launch.h"
@@ -38,6 +39,10 @@
#include "chrome/updater/util/posix_util.h"
#include "chrome/updater/util/util.h"
+@interface NSXPCConnection (Private)
+@property(readonly) audit_token_t auditToken;
+@end
+
@interface PrivilegedHelperServiceImpl
: NSObject <PrivilegedHelperServiceProtocol> {
raw_ptr<updater::PrivilegedHelperService> _service;
@@ -106,6 +111,19 @@
- (BOOL)listener:(NSXPCListener*)listener
shouldAcceptNewConnection:(NSXPCConnection*)newConnection {
+ std::optional<base::mac::ProcessRequirement> requirement =
+ base::mac::ProcessRequirement::Builder()
+ .IdentifierIsOneOf({MAC_BROWSER_BUNDLE_IDENTIFIER_STRING,
+ MAC_BROWSER_BUNDLE_IDENTIFIER_STRING ".beta",
+ MAC_BROWSER_BUNDLE_IDENTIFIER_STRING ".dev",
+ MAC_BROWSER_BUNDLE_IDENTIFIER_STRING ".canary"})
+ .SignedWithSameIdentity()
+ .Build();
+ if (!requirement || !requirement->ValidateProcess(newConnection.auditToken)) {
+ // TODO(crbug.com/494281198): Consider shutting down and uninstalling.
+ return NO;
+ }
+
newConnection.exportedInterface = [NSXPCInterface
interfaceWithProtocol:@protocol(PrivilegedHelperServiceProtocol)];
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