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

Insufficient validation of untrusted input in GPU in Google Chrome on Windows prior to 149

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

This is a bad lock on an interior door, not an open front gate

CVE-2026-11021 is a Chrome *GPU/Viz trust-boundary* bug on Windows before 149.0.7827.53. Public Chromium release notes classify it as *insufficient validation of untrusted input in GPU*, and the linked fix for bug 497487755 adds validation during deserialization of renderer-supplied TextureQuad geometry. In plain English: browser-side code was trusting renderer-originated graphics data too much.

The vendor's own *Chromium security severity: Medium* is basically right. The decisive friction is that this is not a clean internet-to-compromise bug; it is a *post-renderer* primitive, meaning the attacker first needs a separate renderer compromise and only then can try to drive this bug for additional impact. That sharply narrows both the reachable population and the number of real-world attack chains that can weaponize it.

"Post-renderer, Windows-only, and no exploitation evidence: real risk, but not your top-of-pile Chrome fire"
02 · The Attack Path

4 steps from start to impact.

STEP 01

Land code in the renderer first

The attacker still needs an initial browser foothold, typically a separate renderer-side memory corruption or logic bug delivered through a crafted page. CVE-2026-11021 does not provide that first break by itself; it only matters *after* hostile code or a hostile state already exists inside the renderer.
Conditions required:
  • User visits attacker-controlled content
  • A separate renderer-compromise bug or equivalent renderer control primitive already exists
  • Target is running vulnerable Chrome on Windows
Where this breaks in practice:
  • This is a chained exploit, not single-bug initial access
  • Modern site isolation, sandboxing, and exploit mitigations still have to be bypassed in earlier stages
  • No public exploit chain for this CVE was found
Detection/coverage: Perimeter scanners will not see this. Detection is mostly behavioral: browser crash telemetry, exploit protection alerts, renderer-to-browser anomaly chains, and suspicious child-process/browser memory events.
STEP 02

Abuse the GPU/Viz IPC boundary

Once the renderer is under attacker influence, it can send crafted graphics/compositing objects across Chromium IPC/Mojo boundaries. The public fix tied to bug 497487755 adds validation for renderer-supplied TextureQuad coordinates during deserialization, which strongly suggests a browser-side trust failure on renderer-originated graphics data.
Conditions required:
  • Attacker can drive renderer-originated graphics/compositing messages
  • Victim is on a Windows build before 149.0.7827.53
Where this breaks in practice:
  • The reachable code path appears specific to GPU/Viz compositing internals rather than generic page scripting alone
  • Chrome restricted bug details, so reliable exploit development has less public help than typical N-day browser bugs
Detection/coverage: Expect weak signature coverage. Some EDRs may catch the downstream memory corruption or unusual browser process behavior, but commodity vulnerability scanners will mostly report only vulnerable version state.
STEP 03

Trigger bad deserialization/validation

The fix enforces non-negative dimensions and normalized bounds for a deserialized rectangle. That points to malformed renderer-controlled geometry crossing into a more privileged browser-side component, where invalid assumptions could enable memory safety impact or trust-boundary abuse. *Inference from the patch and Chrome metadata:* this is best understood as a post-renderer escalation aid, not standalone RCE.
Conditions required:
  • Malformed quad data reaches the vulnerable deserializer
  • Exploit chain can convert the validation gap into a stable primitive
Where this breaks in practice:
  • Public technical detail is sparse
  • Turning a validation bug into a reliable cross-boundary exploit is materially harder than proving a crash
  • Browser mitigations and process isolation still pressure exploit reliability
Detection/coverage: Likely low direct coverage. Hunt for repeatable Chrome GPU/Viz crashes, exploit protection telemetry, and browser child-process instability on Windows endpoints.
STEP 04

Escalate impact beyond the renderer

If successfully weaponized, the point of the bug is to gain something *more* than renderer execution: likely broader browser-process influence, stronger data access, or sandbox-escape utility. The exact final impact is not publicly exposed in the bug record, so the endpoint here is necessarily conservative.
Conditions required:
  • Successful conversion of the validation flaw into a usable exploitation primitive
  • A working chain from renderer control to higher-privilege browser impact
Where this breaks in practice:
  • No KEV listing
  • No public PoC located
  • Very low EPSS and no current reporting of active exploitation
Detection/coverage: Look for browser exploitation sequences rather than a CVE-specific IOC: abnormal Chrome crashes, token theft follow-on activity, suspicious DLL loads, or browser-originated process injection.
03 · Intelligence Metadata

The supporting signals.

In-the-wild statusNo evidence found of active exploitation; not in CISA KEV as of the catalog check.
Public PoCNone found in public searches. Chromium bug details are restricted, which slows copycat weaponization.
EPSS0.00047 from the user-supplied intel block; that is very low threat probability. Public percentile was not confirmed from cited sources.
KEV statusNot listed in the CISA KEV catalog.
Vendor severityChrome release notes mark it Chromium security severity: Medium.
Affected versionsGoogle Chrome on Windows before 149.0.7827.53.
Fixed versionUpgrade Windows Chrome to 149.0.7827.53 or later. Early Stable shipped on 2026-05-29; full Stable on 2026-06-02.
Technical corePublic fix for bug 497487755 adds validation to renderer-supplied TextureQuad coordinates during deserialization in Chromium graphics/compositing code.
Scanning/exposure realityThis is not meaningfully Shodan/Censys-enumerable because it is a client-side browser flaw on endpoints, not an internet-facing service. Exposure is your managed Windows browser fleet, not your external attack surface.
Disclosure / reporterDisclosed 2026-06-04; Chrome release notes show it was reported by Google on 2026-03-29.
04 · The Call

noisgate verdict.

Final Verdict
= UNCHANGED to MEDIUM (5.8/10)

The single biggest downward pressure is that this bug requires prior renderer compromise, which means it is a *second-stage* exploit component rather than direct initial access. That narrows the attacker population from 'anyone who can get a click' to adversaries already capable of landing a browser foothold, and there is no current exploitation evidence to offset that friction.

HIGH Affected version and platform scope
HIGH Post-renderer prerequisite materially reduces real-world severity
MEDIUM Exact end-state impact, because the Chromium bug details remain restricted

Why this verdict

  • Starts post-initial-access: the attacker needs a *separate renderer compromise first*, so this is not a one-bug internet-to-host event.
  • Windows-only scope: affected population is narrower than the overall Chrome estate because macOS and Linux are out.
  • Vendor severity is already Medium: Chrome itself did not flag this as a high/critical standalone issue, which fits the trust-boundary-but-chained nature of the bug.
  • Low weaponization signals: no KEV, no public PoC found, and the supplied 0.00047 EPSS is near the floor.
  • Blast radius is endpoint-local: compromise value can still be serious for a user session, but it does not expose a server-side shared service or mass unauthenticated attack surface.

Why not higher?

Because the exploit chain assumes the attacker already controls the renderer, this vulnerability is missing the most important step that makes browser bugs operationally urgent: *initial code execution from normal browsing*. Without active exploitation, KEV status, or a public chain, there is not enough evidence to push this into HIGH on a 10,000-host prioritization board.

Why not lower?

It still sits inside one of the most exposed applications in the enterprise, and the fix lands on a renderer-to-browser trust boundary in graphics code, which is exactly the sort of place exploit chains look for escape primitives. If an attacker already has renderer control on a Windows endpoint, this bug may help them turn a contained foothold into something more durable.

05 · Compensating Control

What to do — in priority order.

  1. Force Chrome auto-update compliance — Use enterprise policy and software distribution to eliminate stuck Windows clients. For a MEDIUM call there is no noisgate mitigation SLA; treat this as hygiene while you work the patch through the remediation window.
  2. Prioritize Windows browser inventory — This CVE is Windows-specific, so do not waste cycles chasing macOS/Linux noise. Build a clean list of chrome.exe versions on managed Windows endpoints and close exceptions before they become long-tail debt; for MEDIUM, there is no mitigation SLA.
  3. Hunt browser exploit telemetry — Watch for repeated Chrome GPU/Viz crashes, exploit protection hits, and suspicious browser child-process behavior on Windows. This will not patch the bug, but it can catch chained exploitation attempts while you complete remediation; again, no mitigation SLA applies at MEDIUM.
  4. Reduce unmanaged browsing paths — Where practical, steer users away from unmanaged local admin installs, stale portable builds, and alternate update channels that drift from enterprise policy. This is mainly to kill stragglers that version-based reporting often misses; no mitigation SLA applies for this severity.
What doesn't work
  • A WAF or network IPS will not save you here; this is endpoint browser logic, not a clean server-side pattern match.
  • External attack-surface management is mostly irrelevant because there is no internet-facing service to fingerprint for this flaw.
  • AV-only thinking is weak coverage; if a chain stays in-browser long enough, signature tools may see only a crash or nothing useful at all.
06 · Verification

Crowdsourced verification payload.

Run this on the target Windows endpoint or through your EDR/management tooling with standard user rights; admin is not required unless your environment blocks access to Program Files. Example: powershell -ExecutionPolicy Bypass -File .\check-chrome-cve-2026-11021.ps1. The script checks common Chrome install paths and reports VULNERABLE, PATCHED, or UNKNOWN against the Windows fix level 149.0.7827.53.

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

# Checks Google Chrome on Windows for CVE-2026-11021 exposure.

# Vulnerable if installed version is lower than 149.0.7827.53.

# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN


$ErrorActionPreference = 'SilentlyContinue'

function Get-InstalledChromePaths {
    $paths = @(
        "$env:ProgramFiles\Google\Chrome\Application\chrome.exe",
        "$env:ProgramFiles(x86)\Google\Chrome\Application\chrome.exe",
        "$env:LocalAppData\Google\Chrome\Application\chrome.exe"
    )

    $regPaths = @(
        'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe',
        'HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe',
        'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe'
    )

    foreach ($rp in $regPaths) {
        $val = (Get-ItemProperty -Path $rp).'(default)'
        if ($val) { $paths += $val }
    }

    $paths | Where-Object { $_ -and (Test-Path $_) } | Select-Object -Unique
}

function Get-VersionObject([string]$v) {
    try {
        return [version]$v
    } catch {
        return $null
    }
}

$fixedVersion = Get-VersionObject '149.0.7827.53'
$chromePaths = Get-InstalledChromePaths

if (-not $chromePaths -or $chromePaths.Count -eq 0) {
    Write-Output 'UNKNOWN - chrome.exe not found in standard paths or registry.'
    exit 2
}

$results = @()
foreach ($path in $chromePaths) {
    $file = Get-Item $path
    if (-not $file) { continue }

    $prodVersion = $file.VersionInfo.ProductVersion
    if (-not $prodVersion) { $prodVersion = $file.VersionInfo.FileVersion }
    if (-not $prodVersion) {
        $results += [pscustomobject]@{ Path = $path; Version = $null; State = 'UNKNOWN' }
        continue
    }

    $verObj = Get-VersionObject $prodVersion
    if (-not $verObj) {
        $results += [pscustomobject]@{ Path = $path; Version = $prodVersion; State = 'UNKNOWN' }
        continue
    }

    if ($verObj -lt $fixedVersion) {
        $results += [pscustomobject]@{ Path = $path; Version = $prodVersion; State = 'VULNERABLE' }
    } else {
        $results += [pscustomobject]@{ Path = $path; Version = $prodVersion; State = 'PATCHED' }
    }
}

if ($results.Count -eq 0) {
    Write-Output 'UNKNOWN - unable to determine Chrome version.'
    exit 2
}

$results | ForEach-Object {
    Write-Output ("{0} - {1} - {2}" -f $_.State, $_.Version, $_.Path)
}

if ($results.State -contains 'VULNERABLE') {
    exit 1
}
elseif ($results.State -contains 'PATCHED') {
    exit 0
}
else {
    exit 2
}
07 · Bottom Line

If you remember one thing.

TL;DR
Monday morning: pull a Windows-only Chrome version inventory, verify your update rings are actually moving clients to 149.0.7827.53+, and close any unmanaged or pinned builds that missed the release. For a MEDIUM reassessment there is no noisgate mitigation SLA — go straight to the 365-day remediation window; in practice, this belongs in normal browser maintenance, but do not let Windows stragglers sit for a year just because the formal noisgate remediation SLA allows it.

Sources

  1. Chrome Stable Channel Update for Desktop (Chrome 149)
  2. Chrome Early Stable Update for Desktop
  3. Chromium fix tied to bug 497487755
  4. CISA Known Exploited Vulnerabilities Catalog
  5. FIRST EPSS data documentation
  6. Canadian Centre for Cyber Security advisory AV26-544
  7. Chrome Releases archive / 2026 index
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.