Chrome · Skia
CVE-2026-85049
UAF in Skia
Overview
High
Severity
—
CVSS
No
Exploited ITW
Fixed
Fix Status
Changed Functions
| Function | Change | Notes |
|---|---|---|
ifsrc/core/SkCachedData.cpp |
modified |
Files Changed
src/core/SkCachedData.cpp
Patch
From d7c15613590bfe9f9a40e82542c2873766a2e558 Mon Sep 17 00:00:00 2001 From: Arthur Sonzogni <[email protected]> Date: Thu, 27 Aug 2026 09:47:10 +0000 Subject: [PATCH] Fix UAF in SkCachedData::internalUnref Destroy AutoMutexWritable before calling delete this in SkCachedData::internalUnref to avoid unlocking the mutex after the object has been deleted. This was found while trying to enable the MiraclePtr rewrite that would protect "this" and cause deterministic termination. Fixed: 553345874 Bug: 351867706 Doc: https://bit.ly/miracleptr-skia Change-Id: I0a1d3aed3b3d41e4ed06505295a14028ff634788 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1340596 Reviewed-by: Michael Ludwig <[email protected]> Commit-Queue: Arthur Sonzogni <[email protected]> --- diff --git a/src/core/SkCachedData.cpp b/src/core/SkCachedData.cpp index b48bee8..6df6d1d 100644 --- a/src/core/SkCachedData.cpp +++ b/src/core/SkCachedData.cpp @@ -65,7 +65,12 @@ } void SkCachedData::internalUnref(bool fromCache) const { - if (AutoMutexWritable(this)->inMutexUnref(fromCache)) { + bool shouldDelete = false; + { + AutoMutexWritable amw(this); + shouldDelete = amw->inMutexUnref(fromCache); + } + if (shouldDelete) { // can't delete inside doInternalUnref, since it is locking a mutex (which we own) delete this; }
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