Critical chrome UAF 🔧 Commit mapped

Overview

Critical
Severity
CVSS
No
Exploited ITW
Fixed
Fix Status
ImpactUse after free in XR
DescriptionUse after free in XR
ComponentXR
Bug ClassUAF
Tracker497724498
Fix commitb173791bf402 (chromium/src) +8/-4
CISA KEVNot listed
CreditedJihyeon Jeong (Compsec Lab, Seoul National University / Research Intern)
Disclosed2026-04-15

Changed Functions

FunctionChangeNotes
for
device/vr/openxr/openxr_spatial_framework_manager.cc
modified

Files Changed

  • AUTHORS
  • device/vr/openxr/openxr_spatial_framework_manager.cc
From b173791bf4026a6bb43124f7c5f46cfa4539c014 Mon Sep 17 00:00:00 2001
From: p0-tato <[email protected]>
Date: Mon, 13 Apr 2026 14:50:07 -0700
Subject: [PATCH] Fix dangling pointers in OpenXrSpatialFrameworkManager

Pointers to vector elements were collected during emplace_back,
which invalidates them on reallocation. Split into two loops
and reserve the correct capacity.

Bug: 497724498
Change-Id: I204534bc1bd1522fe03db86f03c2c3e0d285631c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7735242
Commit-Queue: Brian Sheedy <[email protected]>
Reviewed-by: Brian Sheedy <[email protected]>
Reviewed-by: Brandon Jones <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1613990}
---

diff --git a/AUTHORS b/AUTHORS
index 44daf5c..675d2c1 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -738,6 +738,7 @@
 Jihun Brent Kim <[email protected]>
 Jihwan Marc Kim <[email protected]>
 Jihye Hyun <[email protected]>
+Jihyeon Jeong <[email protected]>
 Jihyeon Lee <[email protected]>
 Jim Wu <[email protected]>
 Jin Yang <[email protected]>
diff --git a/device/vr/openxr/openxr_spatial_framework_manager.cc b/device/vr/openxr/openxr_spatial_framework_manager.cc
index 2fd3609..b6f82c5 100644
--- a/device/vr/openxr/openxr_spatial_framework_manager.cc
+++ b/device/vr/openxr/openxr_spatial_framework_manager.cc
@@ -74,12 +74,15 @@
   // to help abstract some of the details of creating the child structs, even
   // though at present we only have a configuration base.
   std::vector<OpenXrSpatialCapabilityConfigurationBase> capability_configs;
-  std::vector<XrSpatialCapabilityConfigurationBaseHeaderEXT*>
-      capability_config_ptrs;
+  capability_configs.reserve(capability_configuration.size());
   for (auto& [capability, components] : capability_configuration) {
     capability_configs.emplace_back(capability, components);
-    capability_config_ptrs.push_back(
-        capability_configs.back().GetAsBaseHeader());
+  }
+
+  std::vector<XrSpatialCapabilityConfigurationBaseHeaderEXT*>
+      capability_config_ptrs;
+  for (auto& config : capability_configs) {
+    capability_config_ptrs.push_back(config.GetAsBaseHeader());
   }
 
   XrSpatialContextCreateInfoEXT create_info = {
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.