← Back to Feed CACHED · 2026-05-17 09:42:19 · cache_key CVE-2025-29912
CVE-2026-10908 · CWE-416 · Disclosed 2026-06-04

Use after free in FullScreen in Google Chrome on Windows prior to 149

ASSESSED — NOISGATE V0.5
Vendor
Reassessed
Verdict:
01 · The Real Story

This is a trapdoor inside the panic room: useless until the intruder is already inside, but very bad once they are

CVE-2026-10908 is a use-after-free in Chrome FullScreen on Windows. The affected population is Google Chrome on Windows prior to 149.0.7827.53; Google’s stable desktop release moved Windows/Mac to 149.0.7827.53/54 on 2026-06-02. The key detail is the precondition in the description: the attacker must have already compromised the renderer process and then use this bug to try to cross the browser sandbox boundary.

Google’s HIGH 8.3 is technically fair in Chromium’s own taxonomy because renderer sandbox escapes are high severity by design, but for patch-priority reality this is not a one-click internet-to-host compromise. The attacker needs a prior memory-corruption or logic bug in renderer-reachable content first, which is strong downward pressure; the reason this still lands HIGH instead of MEDIUM is that Chrome is ubiquitous on Windows and sandbox-escape primitives are exactly what turns a renderer foothold into real device impact.

"Stage-two bug, not initial access—but on Chrome for Windows, stage two still matters at enterprise scale."
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land code execution in the renderer

The attacker first needs a separate renderer compromise, typically via a distinct HTML/JS-triggered memory corruption or logic flaw in Blink, V8, media, or a related renderer-reachable component. CVE-2026-10908 does not provide that initial foothold by itself; it is the second bug in the chain.
Conditions required:
  • Victim uses Chrome on Windows below 149.0.7827.53
  • Attacker can get the user to render malicious web content
  • A separate exploit exists to obtain renderer code execution
Where this breaks in practice:
  • This bug is not directly reachable as unauthenticated remote device compromise
  • Modern Chrome hardening, site isolation, CFG/ASLR, and Windows mitigations complicate stage-one reliability
  • No public exploit chain or in-the-wild evidence was found
Detection/coverage: Version scanners will miss the crucial truth here: they can tell you the browser is old, not whether an attacker can satisfy the renderer-compromise prerequisite. EDR may only see renderer crashes, exploit-guard events, or abnormal Chrome process behavior.
STEP 02

Pivot from sandboxed renderer into FullScreen bug

With renderer control, the attacker can drive browser-exposed interfaces and trigger the FullScreen use-after-free from a far more privileged position than ordinary web content. This is where the bug becomes interesting: it is a sandbox-escape candidate, not a standalone browser RCE.
Conditions required:
  • Renderer process already compromised
  • Attack path can reach the vulnerable FullScreen code path on Windows
Where this breaks in practice:
  • Browser-side state, timing, and object lifetime bugs are typically brittle across versions
  • The bug is Windows-only per the supplied description
Detection/coverage: There is no reliable network signature. Crash telemetry, Chrome GPU/browser crash spikes, and exploit-protection logs are the realistic signals.
STEP 03

Corrupt memory across the sandbox boundary

Successful exploitation would let the attacker corrupt a more privileged process context than the renderer, defeating Chrome’s containment model. On Windows, Chromium documents renderers as lockdown / untrusted processes specifically so that a renderer compromise does not directly reach user files or broad OS APIs; a sandbox escape undoes that design goal.
Conditions required:
  • The FullScreen UAF can be made reliable enough for cross-process impact
  • Windows mitigations do not stop the chosen exploit path
Where this breaks in practice:
  • Browser-process exploitation is materially harder than causing a renderer crash
  • Exploit reliability varies by Windows build, hardware, and mitigation state
Detection/coverage: Security tooling may catch post-exploit behavior better than the exploit itself: unexpected file access by Chrome, child-process anomalies, token abuse, or follow-on payload execution.
STEP 04

Convert browser escape into user-level impact

If the sandbox escape succeeds, the attacker can act with the browser’s user-level privileges instead of the renderer’s heavily restricted token. That is the difference between a contained browser exploit and a practical endpoint compromise path, including local file access, credential theft opportunities, or payload staging as the logged-in user.
Conditions required:
  • Successful sandbox escape
  • Victim user context has valuable local data or enterprise access
Where this breaks in practice:
  • EDR, application control, and browser auto-update reduce dwell time
  • Many real campaigns still need another step for persistence or elevated privileges
Detection/coverage: Post-compromise detection is much stronger than pre-exploit detection here. EDR should surface suspicious Chrome-originated file writes, LOLBin launches, or credential-store access attempts.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo public evidence of active exploitation found and not listed in CISA KEV as checked against the KEV catalog on 2026-06-05.
Public PoCNo public PoC located. The upstream Chromium bug is referenced as issue 505045913 but details remain restricted, which is normal for fresh Chrome security fixes.
EPSS0.00068 from the user-supplied intel, which is very low and argues against mass exploitation pressure right now. Percentile was not confirmed from an authoritative source during this review.
KEV statusNo. There is no KEV entry for CVE-2026-10908 in the current CISA Known Exploited Vulnerabilities Catalog.
CVSS vector reality checkCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:C/C:H/I:H/A:H captures that exploitation is remote and can be severe, but it still understates the practical prerequisite: you need a compromised renderer first, which is a major real-world friction point.
Affected versionsGoogle Chrome on Windows prior to 149.0.7827.53 per the supplied description and the June 2026 Chrome 149 desktop release train.
Fixed versionsGoogle promoted desktop stable to 149.0.7827.53/54 for Windows/Mac on 2026-06-02. For enterprises on managed channels, verify that any version pinning or Extended Stable policy is not keeping Windows endpoints below the fixed build.
Scanning and exposure dataShodan/Censys/FOFA/GreyNoise are weak signals here because Chrome desktop is client software, not a normally internet-listening service. Use EDR/SCCM/Intune/Chrome Enterprise inventory to measure exposure, not internet surface scans.
Disclosure timingThere are two dates that matter: Google’s stable desktop fix shipped on 2026-06-02, while the user-supplied disclosure date is 2026-06-04. Treat 2026-06-02 as the operational patch-availability date.
ReporterReported by Mihnea Nicolau on 2026-04-21, per the Chrome 149 stable release notes.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to HIGH (7.0/10)

The single decisive factor is that this bug requires a pre-existing renderer compromise, so it is not an initial-access vulnerability and should not be treated like a one-bug drive-by RCE. It stays HIGH because Chrome on Windows is everywhere, and sandbox escapes are the exact second-stage primitive attackers need to turn a browser foothold into meaningful endpoint impact.

HIGH Affected version and fix-train mapping
HIGH Requirement for prior renderer compromise
MEDIUM Assessment of current exploit availability and campaign use

Why this verdict

  • Big downgrade factor: prior compromise required — the attacker position is effectively *post-exploitation inside a renderer*, which implies they already burned or bought another bug first.
  • Exposure is huge, but reachable population is narrower than CVSS implies — Chrome is universal, yet only Windows builds below 149.0.7827.53 are relevant and only after a renderer foothold.
  • Modern controls should break stage one more often than stage two — browser hardening, EDR exploit protections, and rapid Chrome auto-updates put friction on the full chain even if this individual bug is serious.

Why not higher?

It is not higher because the vulnerability does not directly give an unauthenticated remote attacker code execution on the host. The exploit chain must already be inside the renderer sandbox, which is a material prerequisite that sharply reduces who can use it and how often it will be used at scale.

Why not lower?

It is not lower because a Chrome sandbox escape on Windows is still a high-value chain component in a massively deployed target. Once stage one exists, this class of bug can convert a contained browser exploit into genuine endpoint impact, which is too important for backlog-only treatment.

05 · Compensating Control

What to do — in priority order.

  1. Force Chrome Stable auto-update — Ensure Windows endpoints are not pinned below 149.0.7827.53 and that Google Update or your managed deployment channel is allowed to move forward. For a HIGH verdict, deploy this control within 30 days if patch rollout is not already automatic.
  2. Remove risky version pinning — Review Target version prefix, rollback policies, and Extended Stable exceptions that strand users on older Windows builds. This matters most in large estates where the browser looks 'managed' but is quietly held below the fixed build; fix the policy within 30 days.
  3. Isolate unpatchable browsing tiers — For kiosks, regulated systems, or brittle app stacks that cannot move immediately, place high-risk users behind remote browser isolation, VDI, or equivalent containment. Use this as a temporary brake on exploit-chain risk and deploy it within 30 days.
  4. Hunt for suspicious Chrome child activity — Tune EDR detections for chrome.exe spawning script hosts, LOLBins, unexpected file writes, or credential-store access attempts. This will not stop the bug, but it will shorten dwell time if someone successfully chains a renderer exploit with this sandbox escape; implement within 30 days.
What doesn't work
  • A WAF or network IPS will not save you here; this is client-side browser exploitation, not a server-side parser exposed on your edge.
  • Internet exposure scanners like Shodan/Censys/FOFA are the wrong instrument because Chrome desktop is not an internet-listening asset you can enumerate meaningfully.
  • MFA is not a mitigating control for the bug itself; once a browser process is compromised, the attacker is abusing the local user context, not trying to log in through your identity perimeter.
06 · Verification

Crowdsourced verification payload.

Run this on the target Windows endpoint or through your EDR/RMM as a local inventory check. Invoke with powershell.exe -ExecutionPolicy Bypass -File .\check-chrome-cve-2026-10908.ps1; standard user is usually enough because it only reads file metadata from common Chrome install paths and user profile locations.

noisgate-verify.ps1
POWERSHELLREAD-ONLYSAFE
# check-chrome-cve-2026-10908.ps1

# Outputs: VULNERABLE / PATCHED / UNKNOWN

# Exit codes: 1 = vulnerable, 0 = patched, 2 = unknown


$ErrorActionPreference = 'SilentlyContinue'
$fixedVersion = [version]'149.0.7827.53'

$paths = @(
    "$env:ProgramFiles\Google\Chrome\Application\chrome.exe",
    "$env:ProgramFiles(x86)\Google\Chrome\Application\chrome.exe",
    "$env:LocalAppData\Google\Chrome\Application\chrome.exe"
) | Select-Object -Unique

$found = @()
foreach ($p in $paths) {
    if (Test-Path $p) {
        try {
            $fv = (Get-Item $p).VersionInfo.FileVersion
            if ($fv) {
                $ver = [version]($fv.Split(' ')[0])
                $found += [pscustomobject]@{
                    Path = $p
                    Version = $ver
                }
            }
        } catch {
        }
    }
}

if (-not $found -or $found.Count -eq 0) {
    Write-Output 'UNKNOWN - Chrome executable not found in standard install paths'
    exit 2
}

$vuln = $found | Where-Object { $_.Version -lt $fixedVersion }
$patched = $found | Where-Object { $_.Version -ge $fixedVersion }

if ($vuln.Count -gt 0) {
    $details = ($vuln | ForEach-Object { "$($_.Path) [$($_.Version)]" }) -join '; '
    Write-Output "VULNERABLE - Found Chrome for Windows below $fixedVersion : $details"
    exit 1
}

if ($patched.Count -gt 0) {
    $details = ($patched | ForEach-Object { "$($_.Path) [$($_.Version)]" }) -join '; '
    Write-Output "PATCHED - All discovered Chrome installs are at or above $fixedVersion : $details"
    exit 0
}

Write-Output 'UNKNOWN - Unable to determine Chrome version state'
exit 2
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning, inventory all Windows endpoints for chrome.exe below 149.0.7827.53`, then remove any policy pinning or channel configuration that keeps them there. This is a HIGH chain component, not an all-hands zero-day: if some systems cannot move immediately, apply containment such as browser isolation or tighter browsing restrictions for those users within the noisgate mitigation SLA of 30 days; complete rollout of the vendor-fixed Chrome build within the noisgate remediation SLA of 180 days**.

Sources

  1. Chrome Releases - Stable Channel Update for Desktop (Chrome 149)
  2. Chrome Releases - Early Stable Update for Desktop
  3. Chromium - chrome://sandbox Diagnostics for Windows
  4. Chromium - Severity Guidelines for Security Issues
  5. CISA Known Exploited Vulnerabilities Catalog
  6. FIRST EPSS API endpoint for this CVE
  7. Chrome Enterprise - Manage Chrome updates (Windows)
  8. Chromium issue referenced by the Chrome 149 advisory
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.