Chrome · CrashReporting
CVE-2026-85052
OOB in CrashReporting
Overview
High
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Files Changed
third_party/crashpad/README.chromiumthird_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.ccthird_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.ccthird_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.ccthird_party/crashpad/crashpad/snapshot/sanitized/process_snapshot_sanitized.ccthird_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.ccthird_party/crashpad/crashpad/util/linux/pac_helper.ccthird_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.ccthird_party/crashpad/crashpad/util/misc/capture_context_test_util_mac.ccthird_party/crashpad/crashpad/util/misc/capture_context_test_util_win.ccthird_party/crashpad/crashpad/util/misc/reinterpret_bytes.ccthird_party/crashpad/crashpad/util/numeric/int128_test.cc
Patch
From da2e30bc2075402c4bd68fe1af7674bfbe3f5a4a Mon Sep 17 00:00:00 2001
From: Joshua Peraza <jperaza@google.com>
Date: Wed, 26 Aug 2026 10:30:05 -0700
Subject: [PATCH] Update Crashpad to 60dd943f48d77dc8d05dabc04badbd8561d0b8c4
48b459d7aed3 Add missing build/build_config.h includes
60dd943f48d7 Round up OOB stack pointers in ScanStackForPointers
Bug: 502304489
Change-Id: I8d2c6a0e72a03ecb8b25d4cb5292ef743a3c0d23
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8279916
Commit-Queue: Mark Mentovai <mark@chromium.org>
Auto-Submit: Joshua Peraza <jperaza@chromium.org>
Reviewed-by: Mark Mentovai <mark@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1686535}
---
diff --git a/third_party/crashpad/README.chromium b/third_party/crashpad/README.chromium
index 8d2e2fda..a20b700 100644
--- a/third_party/crashpad/README.chromium
+++ b/third_party/crashpad/README.chromium
@@ -2,7 +2,7 @@
Short Name: crashpad
URL: https://chromium.googlesource.com/crashpad/crashpad
Version: N/A
-Revision: ad1827ddbc03f1c214030b31b380243ded660b95
+Revision: 60dd943f48d77dc8d05dabc04badbd8561d0b8c4
Update Mechanism: Manual
License: Apache-2.0
License File: crashpad/LICENSE
diff --git a/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc b/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
index af245d3..dbdcb8b 100644
--- a/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
@@ -22,6 +22,7 @@
#include "base/fuchsia/fuchsia_logging.h"
#include "base/logging.h"
#include "base/strings/stringprintf.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/fuchsia/memory_map_region_snapshot_fuchsia.h"
#include "test/multiprocess_exec.h"
diff --git a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
index 1862488..a17b4c4 100644
--- a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
@@ -25,6 +25,7 @@
#include "base/bit_cast.h"
#include "base/strings/stringprintf.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/cpu_architecture.h"
#include "snapshot/linux/process_reader_linux.h"
diff --git a/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc b/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
index caacc19..06589d99 100644
--- a/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
@@ -16,6 +16,7 @@
#include <mach/mach.h>
+#include "build/build_config.h"
#include "gtest/gtest.h"
namespace crashpad {
diff --git a/third_party/crashpad/crashpad/snapshot/sanitized/process_snapshot_sanitized.cc b/third_party/crashpad/crashpad/snapshot/sanitized/process_snapshot_sanitized.cc
index afa1c9f..5d44229 100644
--- a/third_party/crashpad/crashpad/snapshot/sanitized/process_snapshot_sanitized.cc
+++ b/third_party/crashpad/crashpad/snapshot/sanitized/process_snapshot_sanitized.cc
@@ -52,7 +52,11 @@
template <typename Pointer>
bool ScanStackForPointers(void* data, size_t size) {
size_t sp_offset;
- if (!AssignIfInRange(&sp_offset, stack_pointer_ - stack_->Address())) {
+ // stack_pointer_ might point below the stack region if ProcessReaderLinux
+ // interpreted it as pointing to a guard page.
+ if (stack_pointer_ < stack_->Address()) {
+ sp_offset = 0;
+ } else if (!AssignIfInRange(&sp_offset, stack_pointer_ - stack_->Address())) {
return false;
}
const size_t aligned_sp_offset =
diff --git a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
index aa78e55..efb3bf8 100644
--- a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
@@ -20,6 +20,7 @@
#include "base/files/file_path.h"
#include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/win/exception_snapshot_win.h"
#include "snapshot/win/process_snapshot_win.h"
diff --git a/third_party/crashpad/crashpad/util/linux/pac_helper.cc b/third_party/crashpad/crashpad/util/linux/pac_helper.cc
index a9d5f04..49eccce2 100644
--- a/third_party/crashpad/crashpad/util/linux/pac_helper.cc
+++ b/third_party/crashpad/crashpad/util/linux/pac_helper.cc
@@ -24,6 +24,7 @@
#include <ptrauth.h>
#endif
+#include "build/build_config.h"
#include "util/misc/address_types.h"
namespace crashpad {
diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
index 55820b9..9b357ada 100644
--- a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
+++ b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_linux.cc
@@ -14,6 +14,7 @@
#include "util/misc/capture_context_test_util.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "util/misc/from_pointer_cast.h"
diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_mac.cc b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_mac.cc
index 8a75b03..841aec4 100644
--- a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_mac.cc
+++ b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_mac.cc
@@ -14,6 +14,7 @@
#include "util/misc/capture_context_test_util.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "util/misc/implicit_cast.h"
diff --git a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_win.cc b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_win.cc
index e21d865..70a6a7d 100644
--- a/third_party/crashpad/crashpad/util/misc/capture_context_test_util_win.cc
+++ b/third_party/crashpad/crashpad/util/misc/capture_context_test_util_win.cc
@@ -16,6 +16,7 @@
#include <iterator>
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "util/win/context_wrappers.h"
diff --git a/third_party/crashpad/crashpad/util/misc/reinterpret_bytes.cc b/third_party/crashpad/crashpad/util/misc/reinterpret_bytes.cc
index 5909b728..e7e5809b 100644
--- a/third_party/crashpad/crashpad/util/misc/reinterpret_bytes.cc
+++ b/third_party/crashpad/crashpad/util/misc/reinterpret_bytes.cc
@@ -19,6 +19,7 @@
#include <algorithm>
#include "base/logging.h"
+#include "build/build_config.h"
namespace crashpad {
namespace internal {
diff --git a/third_party/crashpad/crashpad/util/numeric/int128_test.cc b/third_party/crashpad/crashpad/util/numeric/int128_test.cc
index 5bc9e41..43eaf08 100644
--- a/third_party/crashpad/crashpad/util/numeric/int128_test.cc
+++ b/third_party/crashpad/crashpad/util/numeric/int128_test.cc
@@ -15,6 +15,7 @@
#include "util/numeric/int128.h"
#include "base/bit_cast.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
namespace crashpad {
Loading diff…
Regression Test / PoC
shipped with the fix
diff --git a/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc b/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
index af245d3..dbdcb8b 100644
--- a/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/fuchsia/process_snapshot_fuchsia_test.cc
@@ -22,6 +22,7 @@
#include "base/fuchsia/fuchsia_logging.h"
#include "base/logging.h"
#include "base/strings/stringprintf.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/fuchsia/memory_map_region_snapshot_fuchsia.h"
#include "test/multiprocess_exec.h"
diff --git a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
index 1862488..a17b4c4 100644
--- a/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/linux/exception_snapshot_linux_test.cc
@@ -25,6 +25,7 @@
#include "base/bit_cast.h"
#include "base/strings/stringprintf.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/cpu_architecture.h"
#include "snapshot/linux/process_reader_linux.h"
diff --git a/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc b/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
index caacc19..06589d99 100644
--- a/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/mac/cpu_context_mac_test.cc
@@ -16,6 +16,7 @@
#include <mach/mach.h>
+#include "build/build_config.h"
#include "gtest/gtest.h"
namespace crashpad {
diff --git a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
index aa78e55..efb3bf8 100644
--- a/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
+++ b/third_party/crashpad/crashpad/snapshot/win/exception_snapshot_win_test.cc
@@ -20,6 +20,7 @@
#include "base/files/file_path.h"
#include "base/strings/utf_string_conversions.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
#include "snapshot/win/exception_snapshot_win.h"
#include "snapshot/win/process_snapshot_win.h"
diff --git a/third_party/crashpad/crashpad/util/numeric/int128_test.cc b/third_party/crashpad/crashpad/util/numeric/int128_test.cc
index 5bc9e41..43eaf08 100644
--- a/third_party/crashpad/crashpad/util/numeric/int128_test.cc
+++ b/third_party/crashpad/crashpad/util/numeric/int128_test.cc
@@ -15,6 +15,7 @@
#include "util/numeric/int128.h"
#include "base/bit_cast.h"
+#include "build/build_config.h"
#include "gtest/gtest.h"
namespace crashpad {
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