This is a bad seam in Chrome's graphics gearbox: a hostile page can jam it from the internet, but it still has to punch through the sandbox to wreck the host
CVE-2026-10955 is a type confusion bug in ANGLE on Google Chrome for Windows. ANGLE is Chrome's graphics translation layer on Windows and sits on hot paths for WebGL and general rendering; Google states Chrome on Windows uses it for default WebGL handling and graphics rendering. Affected builds are Chrome on Windows before 149.0.7827.53; Google shipped fixes in the 149.0.7827.53/.54 stable train published on June 2, 2026, with an early stable rollout beginning May 29, 2026.
Reality check: this deserves HIGH, not panic-button critical. The attack is remote and drive-by via a crafted HTML page, which matters enormously at enterprise scale, but the public description stops at potential out-of-bounds memory access rather than confirmed code execution or sandbox escape, there is no KEV listing, no public exploit chain surfaced in web search, and Chrome's Windows sandbox is meaningful friction if the bug lands in a renderer-adjacent path.
4 steps from start to impact.
Deliver the lure page
- Target is using Chrome on Windows below 149.0.7827.53
- User visits an attacker-controlled or attacker-influenced page
- Page content is allowed to render normally in the browser
- Requires user interaction in the form of page load/navigation
- Secure web gateways, DNS filtering, link isolation, and email filtering can kill the lure before render time
- If the enterprise heavily restricts unknown browsing for privileged users, reachable population drops
Hit the ANGLE bug
- ANGLE-backed rendering path is reachable on the target Windows system
- The vulnerable code path is not bypassed by driver blocklists or disabled graphics features
- The exact browser build is still vulnerable
- Enterprise policies that disable or constrain WebGL/GPU acceleration can reduce reachability
- Driver, GPU model, and browser state can make reliability inconsistent across a 10,000-host fleet
- Some crashes may be non-exploitable and end as renderer resets
chrome.exe or GPU/renderer crash reports, Windows Error Reporting events, and EDR signals around browser instability following access to the same domain.Turn confusion into memory access
- Attacker can shape heap/layout state well enough to get a useful primitive
- Platform mitigations do not collapse the bug into a harmless crash
- The vulnerable process exposes memory worth reading or corrupting
- Modern exploit mitigations on Windows reduce reliability
- The advisory language is weaker than 'RCE' or 'sandbox escape', suggesting impact may often stop at crash or limited memory corruption
- No public exploit evidence means there is no proof yet that this step is dependable outside lab conditions
Chain for real host impact
- A useful post-corruption primitive exists
- If the bug lands in a sandboxed process, the attacker can still achieve desired objectives from that boundary or chain another bug
- Defender controls do not stop the follow-on behavior
- Chrome's sandbox is explicit, mature, and designed to limit file/system access
- No public second-stage chain or in-the-wild reports were found as of 2026-06-05
- EDR tends to improve odds of catching post-browser payload execution even if the initial bug fires
The supporting signals.
| In-the-wild status | No public in-the-wild exploitation found in web search as of 2026-06-05. Google did not flag this release item as an actively exploited zero-day, and the CVE is not KEV-listed. |
|---|---|
| PoC availability | No public PoC repo or Metasploit/Exploit-DB hit found during web search. The linked Chromium issue is access-restricted, which is normal for fresh Chrome bugs but means defenders have little exploit detail today. |
| EPSS | 0.035% (11th percentile) per GHSA/FIRST. That is very low and supports a downgrade from panic assumptions. |
| KEV status | Not listed in CISA's Known Exploited Vulnerabilities catalog as of 2026-06-05. |
| Vendor severity / score | Chromium labels it High in the advisory text, but there is no authoritative CVSS score from Chrome or NVD yet. This assessment is therefore first-pass noisgate scoring, not a comparison against vendor CVSS. |
| Affected versions | Google Chrome on Windows prior to 149.0.7827.53. The flaw is explicitly scoped to Windows in the CNA/GHSA wording. |
| Fixed versions | 149.0.7827.53+ on Windows; Google's stable post lists 149.0.7827.53/54 for Windows/Mac and 149.0.7827.53 for Linux for the broader release train. No distro backport story is relevant here because this is the desktop browser, not a distro-owned server package. |
| Reachability amplifier | ANGLE is not obscure plumbing on Windows. Chromium documents it as the default WebGL backend and says Chrome uses it for all graphics rendering on Windows, which increases real attack-surface relevance. |
| Exposure / scanning reality | GreyNoise/Shodan/Censys/FOFA are poor fits for this CVE because there is no internet-facing service to census; the asset is the endpoint browser. I found no public scanning signal tied to this CVE, which is expected for client-side browser bugs. |
| Disclosure / reporter | Google's stable-channel advisory was published 2026-06-02 and lists CVE-2026-10955 as reported by Google on 2026-04-25. GHSA published the advisory entry on 2026-06-05. |
noisgate verdict.
The deciding factor is internet-scale reachability against a very common endpoint application: an attacker only needs to get a user onto a hostile page, and Windows Chrome is everywhere. It stays out of CRITICAL because the public impact stops at potential out-of-bounds memory access, not demonstrated host compromise, and Chrome's sandbox plus the absence of exploit evidence are real braking forces.
Why this verdict
- Upward pressure: unauthenticated remote delivery — the attacker position is just 'internet + lure page'; no creds, no prior foothold, no local access.
- Upward pressure: ANGLE is hot-path code on Windows — Chromium documents ANGLE as the default WebGL backend and part of all graphics rendering on Windows, so this is not an edge feature few users ever touch.
- Downward pressure: user interaction + Windows-only scope + sandbox + no exploitation evidence — the chain needs page load, only hits Windows Chrome, and still has to overcome renderer/process containment to become a real host-compromise event.
Why not higher?
There is no public sign of exploitation, no public PoC, and the advisory language does not claim code execution or sandbox escape. In Chrome, those details matter: a memory bug inside a browser component is not automatically a full workstation takeover unless the exploit chain proves it.
Why not lower?
This is still a drive-by browser bug in a massively deployed enterprise client, reachable over the open web by simply getting a user to render attacker-controlled content. Even with the sandbox, that combination is too operationally important to bury in backlog hygiene.
What to do — in priority order.
- Force Chrome auto-update compliance — Use your existing browser management stack to ensure Windows endpoints cannot sit indefinitely on pre-149.0.7827.53 builds. For a HIGH verdict, enforce this control within 30 days while patch rollout completes.
- Constrain risky graphics paths where business-tolerable — For high-risk user tiers such as admins, finance, and helpdesk, consider temporarily disabling or restricting WebGL/GPU acceleration via enterprise policy if the business can tolerate it. This reduces reachability into ANGLE and should be deployed within 30 days on the highest-risk cohorts.
- Isolate privileged browsing — Move privileged users and admin workflows to hardened browsing profiles, VDI, or browser isolation where available. This limits blast radius if a malicious page lands and should be in place within 30 days for your most sensitive users.
- Turn browser crash telemetry into an alertable signal — Collect
chrome.execrash events, GPU-process instability, and repeated renderer failures into your SIEM/EDR detection pipeline. That won't prevent exploitation, but it gives you the only realistic early warning for a client-side browser flaw, and it should be operationalized within 30 days.
- MFA does nothing here; this is a client-side memory corruption path, not an identity control problem.
- Perimeter vuln scanning does not solve endpoint-browser version drift well and cannot validate the crafted HTML trigger path.
- A generic WAF/IPS rule is weak protection because the trigger is likely normal HTTPS web content and there is no public stable exploit signature to match.
Crowdsourced verification payload.
Run this on the target Windows endpoint or through your remote management tooling such as PowerShell Remoting/Intune. Invoke it with powershell -ExecutionPolicy Bypass -File .\check-chrome-cve-2026-10955.ps1; administrator rights are not required because it reads local file and registry metadata only.
# check-chrome-cve-2026-10955.ps1
# Purpose: Determine whether Google Chrome on Windows is vulnerable to CVE-2026-10955.
# Logic: Any installed Chrome version lower than 149.0.7827.53 is VULNERABLE.
# Output: VULNERABLE / PATCHED / UNKNOWN
# Exit codes: 0=PATCHED, 1=VULNERABLE, 2=UNKNOWN
param()
$ErrorActionPreference = 'SilentlyContinue'
$MinimumSafeVersion = [version]'149.0.7827.53'
$FoundVersions = New-Object System.Collections.Generic.List[version]
function Add-VersionIfValid {
param([string]$VersionString)
if ([string]::IsNullOrWhiteSpace($VersionString)) { return }
try {
$v = [version]$VersionString
$FoundVersions.Add($v)
} catch {
# Ignore unparsable versions
}
}
# Common Chrome executable paths
$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
foreach ($Path in $Paths) {
if (Test-Path $Path) {
$Item = Get-Item $Path
if ($Item -and $Item.VersionInfo) {
Add-VersionIfValid -VersionString $Item.VersionInfo.ProductVersion
Add-VersionIfValid -VersionString $Item.VersionInfo.FileVersion
}
}
}
# Registry locations that may hold Chrome version metadata
$RegistryPaths = @(
'HKLM:\SOFTWARE\Google\Chrome\BLBeacon',
'HKLM:\SOFTWARE\WOW6432Node\Google\Chrome\BLBeacon',
'HKCU:\Software\Google\Chrome\BLBeacon',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\chrome.exe'
)
foreach ($RegPath in $RegistryPaths) {
$Props = Get-ItemProperty -Path $RegPath
if ($Props) {
Add-VersionIfValid -VersionString $Props.version
Add-VersionIfValid -VersionString $Props.pv
if ($Props.'(default)') {
$ExePath = $Props.'(default)'
if (Test-Path $ExePath) {
$Item = Get-Item $ExePath
if ($Item -and $Item.VersionInfo) {
Add-VersionIfValid -VersionString $Item.VersionInfo.ProductVersion
Add-VersionIfValid -VersionString $Item.VersionInfo.FileVersion
}
}
}
if ($Props.Path) {
$ExePath = Join-Path $Props.Path 'chrome.exe'
if (Test-Path $ExePath) {
$Item = Get-Item $ExePath
if ($Item -and $Item.VersionInfo) {
Add-VersionIfValid -VersionString $Item.VersionInfo.ProductVersion
Add-VersionIfValid -VersionString $Item.VersionInfo.FileVersion
}
}
}
}
}
if ($FoundVersions.Count -eq 0) {
Write-Output 'UNKNOWN - Chrome not found or version metadata unavailable'
exit 2
}
$HighestVersion = $FoundVersions | Sort-Object -Descending | Select-Object -First 1
if ($HighestVersion -lt $MinimumSafeVersion) {
Write-Output ("VULNERABLE - Detected Chrome version {0}; requires >= {1}" -f $HighestVersion, $MinimumSafeVersion)
exit 1
} else {
Write-Output ("PATCHED - Detected Chrome version {0}; meets minimum safe version {1}" -f $HighestVersion, $MinimumSafeVersion)
exit 0
}
If you remember one thing.
Sources
- Chrome Releases - Stable Channel Update for Desktop (June 2, 2026)
- Chrome Releases - Early Stable Update for Desktop (May 29, 2026)
- GitHub Advisory Database - GHSA-v8cp-r57p-rcv9 / CVE-2026-10955
- NVD - CVE-2026-10955
- ANGLE official repository README
- Chromium - chrome://sandbox Diagnostics for Windows
- Chromium - Multi-process Architecture
- Canadian Centre for Cyber Security - Google Chrome security advisory AV26-544
What defenders are saying.
Crowdsourced verification outputs.
Results submitted by users who ran the verification payload against their environment.