commit | 37c8838526c8b6d7ce9ec69737b1207134725eed | [log] [tgz] |
---|---|---|
author | Will Harris <wfh@chromium.org> | Mon Jul 14 19:36:23 2025 |
committer | Chromium LUCI CQ <chromium-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jul 14 19:36:23 2025 |
tree | 05c9d326ae13944a73caab97e3022a2e8b98081f | |
parent | 4ba54a9a9c78fb96d840b01cb42fb357726c6ec6 [diff] |
[Win] Detect pre-IPC crashes in sandboxed utility processes This CL adds capability to detect early crashes in a utility processes. An event is created and passed to the utility process via the sandbox delegate data. This is available very early in process lifetime. The event is then signalled by the utility process and the handle closed to ensure it cannot be tampered with for the remainder of the process lifetime. The utility process host checks if the event is signalled in the case of a crash and uses this to determine how far into bootstrap of the process the crash was. This allows other code to determine whether a crash is something that might be attacker induced, or a crash happening early in startup before any mojo services start servicing requests or any untrusted data is consumed by the utility process. This is exposed in two places: the `UtilityProcessHost::Client` now passes the crash type in `OnProcessCrashed`, and the `ServiceProcessHost::Observer` attaches whether or not the crash was a pre-IPC crash in the `ServiceProcessInfo` passed to `OnServiceProcessCrashed`. This will allow, in future CLs, dynamic sandbox behavior to try and improve the stability of the network service sandbox. Tests are added at both of these two layers to verify the behavior. BUG=430635192 Change-Id: I602ea40007d5cc4c2133c01114e5fe74fa2a5ce5 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6727996 Commit-Queue: Will Harris <wfh@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Cr-Commit-Position: refs/heads/main@{#1486496}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
To check out the source code locally, don't use git clone
! Instead, follow the instructions on how to get the code.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure.
For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.
If you found a bug, please file it at https://crbug.com/new.