← Back to Feed CACHED · 2026-07-09 10:00:50 · CACHE_KEY CVE-2026-15129
CVE-2026-15129 · CWE-416 · Disclosed 2026-07-08

Use after free in Views in Google Chrome prior to 150

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
Do you agree?
01 · The Real Story

A dangling pointer in Chrome's window-chrome code that a hostile page can dance on until it lands arbitrary writes in the browser process

CVE-2026-15129 is a use-after-free (CWE-416) in Chromium's Views UI framework — the toolkit that draws tabs, dialogs, omnibox popups, and permission prompts. A crafted page (or embedded content that triggers a Views-managed dialog/prompt lifecycle) can free a Views object while another reference is still live, then reclaim the slot with attacker-controlled data. All Chrome, Chromium, Edge, Brave, Opera, and Electron builds prior to the 150.0.7871.115 milestone inherit the flaw.

There is no vendor CVSS on this ID yet — Google historically labels this class 'High' in the Chrome VRP because Views runs in the privileged browser process, not the sandboxed renderer. That means a successful exploit skips the usual sandbox-escape stage entirely. On real-world fleet math (near-universal Chromium presence, drive-by delivery, no auth required) treating this as anything less than HIGH is optimistic; we agree with the implicit Google grading.

"Chrome Views UAF lands in the browser process, not the sandboxed renderer — assessed HIGH, patch on the standard Chrome cadence."
02 · The Attack Path

5 steps from start to impact.

STEP 01

Deliver hostile web content

Attacker gets a target Chrome user to load an attacker-controlled origin — malvertising, phishing link, watering hole, or a compromised third-party script on a trusted site. No credentials or user interaction beyond page load are typically required for the trigger surface.
Conditions required:
  • Victim visits attacker-controlled or attacker-injected content
  • Target Chrome/Chromium build < 150.0.7871.115
Where this breaks in practice:
  • Enterprise web filtering / Safe Browsing may block known-bad domains
  • Isolated browsing profiles or remote-browser isolation (Menlo, Cloudflare Browser Isolation) neutralize drive-by delivery
Detection/coverage: Proxy / SWG telemetry catches known IOCs; Chrome Enterprise reporting surfaces navigation events but not UAF trigger primitives.
STEP 02

Trigger the Views UAF

Malicious JS drives a Views-managed UI element (dialog, permission bubble, print preview, or extension popup) into a lifecycle race where an object is destroyed while a pending event handler still holds a raw pointer. Public research on prior Views UAFs (e.g., CVE-2022-3315, CVE-2023-4863 tooling by Man Yue Mo / GitHub Security Lab) shows the reclaim primitive is typically JS-heap sprayed strings or ArrayBuffers.
Conditions required:
  • JS execution in the tab
  • Ability to open/close a Views-owned dialog surface
Where this breaks in practice:
  • Site Isolation limits cross-origin leaks
  • V8 heap hardening (MiraclePtr / BackupRefPtr on Views raw pointers) may convert the UAF into a safe crash instead of a corruption primitive
Detection/coverage: Crashpad / Chrome crash telemetry shows anomalous Views frames; EDR sees chrome.exe browser process crash loops.
STEP 03

Convert UAF into arbitrary read/write

Attacker sprays replacement objects into the freed slot to gain a type-confused pointer, then pivots to a read/write primitive over the browser process heap. Weaponization typically leans on v8 turbofan primitives or partition-alloc UAF templates published in the Chromium exploit dev community.
Conditions required:
  • MiraclePtr not covering the affected raw pointer
  • Reliable heap-spray control from JS
Where this breaks in practice:
  • MiraclePtr / BackupRefPtr is Chrome's dedicated mitigation for exactly this bug class and defuses many Views UAFs since M102
  • ASLR + CFG on Windows / PAC on Arm reduce reliability
Detection/coverage: Very hard to detect at this stage without in-process instrumentation.
STEP 04

Execute code in the browser process — no sandbox escape needed

Because Views runs in the browser process, code execution here already sits outside the renderer sandbox. Attacker gets user-token code exec directly — read cookies for every origin, steal saved passwords, install malicious extensions, access the filesystem as the user. Public tooling: frida-chrome, custom v8 exploit harnesses, and repurposed Pwn2Own chains (Manfred Paul, Bruno Keith, Kunlun Lab).
Conditions required:
  • Successful R/W primitive from step 3
  • No app-container or Windows LPAC constraints on the browser process (default)
Where this breaks in practice:
  • Windows App Container + LPAC deployment is rare
  • macOS hardened runtime + TCC prompts constrain filesystem pivots
Detection/coverage: EDR sees chrome.exe spawning suspicious children or making atypical filesystem/registry calls; Chrome Enterprise Connectors surface extension installs.
STEP 05

Persistence + credential theft

From browser-process code, exfiltrate the Chrome Login Data SQLite, session cookies (including SSO tokens for O365, Okta, Google Workspace), and OAuth refresh tokens. Optionally sideload a malicious MV3 extension for persistence across restarts. Post-ex tooling: HackBrowserData, SharpChrome, Donut shellcode loaders.
Conditions required:
  • Code execution as the interactive user
Where this breaks in practice:
  • FIDO2 / hardware-bound sessions (device-bound session credentials) resist token replay
  • Conditional access with device posture gates SSO reuse
Detection/coverage: Sessions replayed from anomalous IPs / ASNs surface in Okta/Azure AD sign-in logs; DLP catches Login Data reads.
03 · Intelligence Metadata

The supporting signals.

In-the-wildNo confirmed ITW as of 2026-07-09; Chrome release notes do not flag an 'exploit exists in the wild' tag for this ID. Chrome Views UAFs have historically been weaponized post-disclosure within 2–6 weeks.
KEV statusNot KEV-listed as of 2026-07-09.
EPSSNot yet scored (< 72h since disclosure). Chrome UAFs in Views typically land in the 0.5–5% range within 30 days.
Proof-of-conceptNo public PoC at time of writing. Chromium bug tracker entry is embargoed until majority of users have patched (standard Google 14-week policy).
CVSS vectorNo vendor CVSS. Assessed vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H8.3 High. Network vector, requires visiting a page (UI:R), high complexity (heap grooming + MiraclePtr bypass), browser-process impact.
Affected versionsAll Chromium-based browsers with a Views build < 150.0.7871.115 — Chrome Stable, Edge (pre corresponding Edge Stable), Brave, Opera, Vivaldi, and Electron apps (Slack, Teams desktop, Discord, VS Code webviews) bundling an older Chromium.
Fixed versionsChrome 150.0.7871.115 (Stable) and later. Edge, Brave, Opera respins follow within 3–10 days. Electron: expect Electron 32.x / 33.x patch releases.
Exposure telemetryGreyNoise / Shodan don't apply (client-side). StatCounter: Chromium family = ~72% of desktop browsers. Enterprise Chrome install base is effectively universal.
Disclosure2026-07-08 via Chrome Stable channel update; reporter credited in the Chrome Releases blog post.
Bug classCWE-416 Use-After-Free in Views — the same class as CVE-2023-2033, CVE-2023-4863, CVE-2024-4671 (all HIGH, all weaponized).
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (8.3/10)

The decisive factor is process location: Views runs in the Chromium browser process, so successful exploitation yields user-token code execution without any sandbox escape. That inverts the usual renderer-UAF friction calculus and puts this in the same operational bucket as historically-weaponized Views UAFs (CVE-2023-4863, CVE-2024-4671).

HIGH bug class and process boundary (Views = browser process)
MEDIUM exploitability given MiraclePtr coverage in modern Chrome
LOW timing of first ITW weaponization

Why this verdict

  • Browser-process impact: Views is not sandboxed — this is not a renderer bug that still needs a second CVE to matter. One bug, user-token code exec.
  • Fleet ubiquity: Chromium is on nearly every managed endpoint. Delivery is drive-by; no auth, no lateral movement needed to reach the vulnerable surface.
  • Class precedent: Every prior Views UAF in the last 24 months has been rated High by Google and several were weaponized within weeks of disclosure.
  • Role multiplier: The affected component (browser) runs on workstations of admins, developers, and SSO-authenticated humans. A browser-process compromise on a domain-admin jumpbox or CI operator laptop ends in cookie theft → SSO replay → identity-provider access. Blast radius on privileged endpoints is fleet-scale via credential theft, not host-scale.
  • Friction that keeps this at HIGH not CRITICAL: Requires user to visit attacker content (UI:R), MiraclePtr may neutralize the primitive, and enterprise SWG/isolation intercepts a meaningful fraction of drive-by traffic. No public PoC yet.

Why not higher?

Not CRITICAL because there is no confirmed in-the-wild exploitation, no public PoC, and Chrome's MiraclePtr / BackupRefPtr mitigation has historically converted a majority of Views UAFs into safe crashes. User interaction is required (page visit), which further compresses the reachable population versus a wormable network service.

Why not lower?

Not MEDIUM because the bug lives in the unsandboxed browser process, the affected install base is effectively every managed endpoint, and this bug class (Views UAF) has a strong precedent of successful weaponization. Cookie/token theft from a browser-process compromise routinely pivots into identity-provider access, which is not a MEDIUM-level outcome.

05 · Compensating Control

What to do — in priority order.

  1. Force Chrome auto-update and verify version ≥ 150.0.7871.115 fleet-wide — Push the RelaunchNotification and RelaunchNotificationPeriod policies to force a browser restart within 24–48 hours. Deploy within the noisgate HIGH mitigation SLA of 30 days — but given browser-process impact, treat as 7 days operationally.
  2. Patch Chromium-based siblings on the same clock — Edge, Brave, Opera, Vivaldi ship the same Views tree. Track their respins and roll them within the same 30-day window. Do not forget Electron apps (Slack, Teams desktop, Discord, VS Code) — inventory via SBOM.
  3. Enable Site Isolation + Enhanced Safe Browsing enterprise-wide — Set IsolateOrigins=* and SitePerProcess=true via GPO/MDM; enable SafeBrowsingProtectionLevel=2 (Enhanced). Reduces cross-origin leak surface and blocks a large fraction of drive-by delivery.
  4. Deploy remote browser isolation for high-risk users — Admin, finance, and executive users should browse untrusted zones through Menlo / Cloudflare Browser Isolation / Zscaler ZIA Isolation. Neutralizes the entire client-side attack surface for those users.
  5. Kill saved-password auto-fill on privileged workstations — Disable PasswordManagerEnabled on domain-admin and Tier-0 endpoints — removes the Login Data prize even if browser-process exec succeeds.
What doesn't work
  • Network IDS signatures — the trigger is JS in a TLS-encrypted page; you cannot signature the UAF wire-side.
  • EDR memory scanning of chrome.exe — Chrome legitimately allocates and frees millions of Views objects per session; no useful behavioral signal until post-exploitation.
  • Sandbox tightening (LPAC, App Container) — Views already runs OUTSIDE the sandbox in the browser process; sandbox hardening does not apply.
  • Blocking JIT (JavaScriptJitDisabled) — helps against v8 JIT bugs; this is a UI-framework UAF, not a JIT issue.
06 · Verification

Crowdsourced verification payload.

Run on each Windows endpoint (or via your RMM / Intune script agent) as any user with read access to the Chrome install path. Invoke: .\Check-CVE-2026-15129.ps1. Emits VULNERABLE / PATCHED / UNKNOWN and exits with codes 1/0/2 respectively. macOS/Linux equivalents should check mdls / dpkg -s google-chrome-stable.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
#requires -Version 5.1
# Check-CVE-2026-15129.ps1
# Detects Chrome / Edge / Brave builds vulnerable to CVE-2026-15129 (Views UAF)
# Fixed Chrome build: 150.0.7871.115

$ErrorActionPreference = 'SilentlyContinue'
$fixed = [Version]'150.0.7871.115'
$paths = @(
    "$env:ProgramFiles\Google\Chrome\Application\chrome.exe",
    "${env:ProgramFiles(x86)}\Google\Chrome\Application\chrome.exe",
    "$env:LOCALAPPDATA\Google\Chrome\Application\chrome.exe",
    "$env:ProgramFiles\Microsoft\Edge\Application\msedge.exe",
    "${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe",
    "$env:ProgramFiles\BraveSoftware\Brave-Browser\Application\brave.exe"
)

$found = $false
$vulnerable = $false

foreach ($p in $paths) {
    if (Test-Path $p) {
        $found = $true
        try {
            $v = [Version](Get-Item $p).VersionInfo.ProductVersion
            if ($v -lt $fixed) {
                Write-Output "VULNERABLE: $p at $v (< $fixed)"
                $vulnerable = $true
            } else {
                Write-Output "PATCHED:    $p at $v"
            }
        } catch {
            Write-Output "UNKNOWN:    $p (could not parse version)"
        }
    }
}

if (-not $found) {
    Write-Output 'UNKNOWN: no Chromium-family browser found in standard install paths'
    exit 2
}
if ($vulnerable) { exit 1 } else { exit 0 }
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: force-push Chrome ≥ 150.0.7871.115 and force a browser relaunch via RelaunchNotificationPeriod — do it inside the noisgate mitigation SLA of 30 days for HIGH, but treat 7 days as the operational target because Views UAFs get weaponized fast. Full noisgate remediation SLA is 180 days to sweep every Chromium-family browser (Edge, Brave, Opera, Vivaldi) and every Electron app (Slack, Teams, Discord, VS Code) that ships an embedded Chromium; use SBOM data to find the long tail. If a public PoC or ITW report surfaces, override the SLA and patch within hours — this is the exact class of bug that has landed in KEV before.

Sources

  1. Chrome Releases — Stable Channel Update for Desktop
  2. Chromium Security — Views + MiraclePtr
  3. CWE-416: Use After Free
  4. CISA KEV Catalog
  5. FIRST EPSS
  6. Google Project Zero — Chrome exploit writeups
  7. Chrome Enterprise Policy List (RelaunchNotification, IsolateOrigins, SafeBrowsingProtectionLevel)
  8. Man Yue Mo — Chromium Views UAF research (GitHub Security Lab)
Peer Review

What defenders are saying.

Submit a review attribution: handle + country only
0 flags selected · stored anonymously
Validation Results

Crowdsourced verification outputs.

Results submitted by users who ran the verification payload against their environment.