On September 4, 2026, CISA added CVE-2026-85046 — a type confusion vulnerability in Google Chromium's V8 JavaScript engine — to the Known Exploited Vulnerabilities (KEV) Catalog based on evidence of active exploitation in the wild. This is not a theoretical risk. When CISA places a browser engine vulnerability in the KEV, it means adversaries are already weaponizing it against real targets, and in the case of V8 flaws, that historically means drive-by compromise via malicious web content, watering-hole attacks, and targeted campaigns against high-value individuals.
Under Binding Operational Directive (BOD) 26-04: Prioritizing Security Updates Based on Risk, Federal Civilian Executive Branch (FCEB) agencies are required to remediate KEV-listed vulnerabilities on an accelerated timeline. But make no mistake: this directive's urgency applies just as much to the private sector. Chrome holds the dominant share of the enterprise browser market, and every Chromium-derived browser — Microsoft Edge, Brave, Opera, Vivaldi — inherits the V8 engine and therefore inherits this exposure.
If your organization allows browsers to self-update without verification, this is the moment to confirm that those updates actually landed. If you pin browser versions for compatibility, you have a ticking clock.
Technical Analysis
What Is CVE-2026-85046?
CVE-2026-85046 is a type confusion vulnerability in V8, the JavaScript and WebAssembly engine at the core of Google Chrome and all Chromium-based browsers. Type confusion occurs when code operates on an object using a type assumption that doesn't match the object's actual type in memory. In a JIT-compiling engine like V8 — which aggressively optimizes JavaScript based on observed type profiles — a type confusion bug allows an attacker to corrupt the engine's internal object representation, typically yielding arbitrary read/write primitives within the renderer process.
Affected Products
- Google Chrome (Windows, macOS, Linux) — all builds prior to the patched stable channel release
- Microsoft Edge (Chromium-based) — inherits V8; Edge patches typically follow Chrome's within days
- Other Chromium derivatives — Brave, Opera, Vivaldi, and embedded Chromium Embedded Framework (CEF) / Electron applications
- Electron-based applications (Teams, Slack, Discord, VS Code, etc.) bundle Chromium and must be updated by their respective vendors
Exploitation Mechanics (Defender's View)
The attack chain for an in-the-wild V8 type confusion typically looks like this:
- Delivery: The victim visits a malicious or compromised webpage, or renders attacker-controlled JavaScript (ads, iframes, phishing links).
- Trigger: Malicious JavaScript exercises the vulnerable V8 optimization path, causing the JIT compiler to mis-handle object types.
- Primitive building: The attacker converts the type confusion into out-of-bounds read/write, leaks pointers to defeat ASLR, and constructs arbitrary read/write.
- Code execution: Shellcode or a ROP chain executes inside the sandboxed renderer process.
- Sandbox escape (frequently chained): Modern V8 exploits are almost always paired with a second vulnerability — a sandbox escape or kernel bug — to break out of the renderer. Post-exploitation behavior to watch for is the browser spawning unexpected child processes: command interpreters, script hosts, or LOLBins.
Exploitation requirements are minimal: the victim only needs to render attacker-controlled JavaScript. No plugins, no downloads, no user interaction beyond page load.
Exploitation Status
- Confirmed active exploitation — this is the basis for CISA's KEV inclusion
- CISA KEV listed: September 4, 2026
- FCEB remediation mandate: Required under BOD 26-04; agencies must remediate by the due date published in the KEV Catalog entry (treat as an emergency patch cycle — browser KEV entries typically carry short deadlines)
CISA's own language is worth repeating: "This type of vulnerability is a frequent attack vector for malicious cyber actors and poses significant risks to the federal enterprise." V8 type confusion bugs are among the most consistently exploited vulnerability classes in the world — they are the bread and butter of commercial spyware vendors and state-aligned intrusion sets.
Detection & Response
You cannot reliably signature the exploit JavaScript itself — it's obfuscated, short-lived, and delivered over TLS. What you can detect is the post-exploitation behavior: the renderer escaping its lane. These detections target the moment a compromised browser process does something a browser should never do.
Sigma Rules
---
title: Chromium-Based Browser Spawning Command Interpreter or Script Host
id: 3f8a2c14-7b9e-4d51-a6c2-8e1f5b9d3a47
status: experimental
description: Detects Chrome, Edge, or other Chromium browsers spawning command interpreters, script hosts, or LOLBins — a strong indicator of renderer compromise and sandbox escape associated with V8 exploitation such as CVE-2026-85046.
references:
- https://www.cisa.gov/news-events/alerts/2026/09/04/cisa-adds-one-known-exploited-vulnerability-catalog
- https://attack.mitre.org/techniques/T1203/
- https://attack.mitre.org/techniques/T1059/
author: Security Arsenal
date: 2026/09/04
tags:
- attack.execution
- attack.t1203
- attack.t1059
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\brave.exe'
- '\opera.exe'
- '\vivaldi.exe'
selection_child:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\pwsh.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\regsvr32.exe'
- '\wmic.exe'
- '\bitsadmin.exe'
- '\certutil.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare enterprise browser extensions or helpdesk tooling that shell out from the browser
level: high
---
title: Chromium Browser Writing Executable Content to User-Writable Directories
id: 9c1d7e52-4a3b-48f6-b2d1-6e5c8a0f2b93
status: experimental
description: Detects Chromium-based browser processes writing PE executables or scripts to user-writable staging directories such as AppData, Temp, or Public — consistent with payload staging after a renderer exploit like CVE-2026-85046.
references:
- https://www.cisa.gov/news-events/alerts/2026/09/04/cisa-adds-one-known-exploited-vulnerability-catalog
- https://attack.mitre.org/techniques/T1204.002/
author: Security Arsenal
date: 2026/09/04
tags:
- attack.execution
- attack.t1204.002
logsource:
category: file_event
product: windows
detection:
selection_image:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
selection_path:
TargetFilename|contains:
- '\AppData\Local\Temp\'
- '\AppData\Roaming\'
- '\Users\Public\'
selection_ext:
TargetFilename|endswith:
- '.exe'
- '.dll'
- '.js'
- '.jse'
- '.vbs'
- '.hta'
- '.bat'
- '.ps1'
filter_downloads:
TargetFilename|contains: '\Downloads\'
condition: selection_image and selection_path and selection_ext and not filter_downloads
falsepositives:
- Browser updater components (typically write to Program Files or Google\Update paths, not user Temp)
- Legitimate extension installs (constrain to PE files to reduce noise)
level: medium
---
title: Chromium Renderer Process Crash Followed by Suspicious Child Process
id: 5b2e9f38-1c7d-43a4-9e62-4d8b6f1a7c05
status: experimental
description: Detects WerFault or crashpad_handler activity referencing a Chromium browser shortly followed by the browser spawning an unusual child process — a potential indicator of failed or partial exploitation attempts against V8 (CVE-2026-85046).
references:
- https://www.cisa.gov/news-events/alerts/2026/09/04/cisa-adds-one-known-exploited-vulnerability-catalog
author: Security Arsenal
date: 2026/09/04
tags:
- attack.exploitation_for_client_execution
- attack.t1203
logsource:
category: process_creation
product: windows
detection:
selection:
Image|endswith:
- '\WerFault.exe'
- '\crashpad_handler.exe'
CommandLine|contains:
- 'chrome'
- 'msedge'
condition: selection
falsepositives:
- Normal renderer crashes from buggy extensions or heavy pages — correlate with subsequent browser child-process activity and repeated crashes on the same host before escalating
level: low
KQL — Microsoft Sentinel / Defender
This query hunts for the core post-exploitation signal: a Chromium browser spawning processes that a browser has no legitimate business spawning. It also surfaces hosts still running outdated Chrome builds so you can prioritize exposure.
// Hunt 1: Chromium browser spawning suspicious child processes (renderer compromise indicator)
let suspiciousChildren = dynamic(["cmd.exe","powershell.exe","pwsh.exe","wscript.exe","cscript.exe","mshta.exe","rundll32.exe","regsvr32.exe","wmic.exe","bitsadmin.exe","certutil.exe","schtasks.exe","rundll32.exe"]);
DeviceProcessEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","brave.exe","opera.exe","vivaldi.exe")
| where FileName in~ (suspiciousChildren)
| project TimeGenerated, DeviceName, AccountName, InitiatingProcessFileName, InitiatingProcessCommandLine, FileName, ProcessCommandLine, SHA256, ReportId
| order by TimeGenerated desc;
// Hunt 2: Exposure check — identify hosts with outdated Chrome installations
DeviceProcessEvents
| where TimeGenerated > ago(2d)
| where FileName =~ "chrome.exe"
| summarize LastSeen = max(TimeGenerated), Versions = make_set(ProcessVersionInfoProductVersion, 20) by DeviceName
| order by DeviceName asc;
// Hunt 3: Browser process writing executables/scripts to user-writable staging paths
DeviceFileEvents
| where TimeGenerated > ago(7d)
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe")
| where FolderPath has_any ("\\AppData\\Local\\Temp\\","\\AppData\\Roaming\\","\\Users\\Public\\")
| where FolderPath !has "\\Downloads\\"
| where FileName endswith_any (".exe",".dll",".js",".vbs",".hta",".bat",".ps1")
| project TimeGenerated, DeviceName, FolderPath, FileName, SHA256, InitiatingProcessCommandLine
| order by TimeGenerated desc;
Velociraptor VQL
Use this artifact to sweep the fleet for browsers with anomalous child process trees — a quick triage step when you suspect a drive-by compromise.
-- Hunt for Chromium browser processes with suspicious child processes (CVE-2026-85046 post-exploitation triage)
LET browsers = SELECT Pid, Name, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)chrome|msedge|brave|opera|vivaldi'
LET suspicious_children = SELECT Pid, Ppid, Name, CommandLine, Exe, Username, CreateTime
FROM pslist()
WHERE Name =~ '(?i)cmd\.exe|powershell\.exe|pwsh\.exe|wscript\.exe|cscript\.exe|mshta\.exe|rundll32\.exe|regsvr32\.exe|wmic\.exe|bitsadmin\.exe|certutil\.exe'
SELECT suspicious_children.Pid AS ChildPid,
suspicious_children.Name AS ChildName,
suspicious_children.CommandLine AS ChildCommandLine,
suspicious_children.Username AS ChildUser,
suspicious_children.CreateTime AS ChildStartTime,
browsers.Name AS ParentBrowser,
browsers.Exe AS ParentPath
FROM suspicious_children
JOIN browsers ON suspicious_children.Ppid = browsers.Pid
Remediation & Verification Script
Run this PowerShell script across your fleet (via GPO, Intune, SCCM, or your RMM) to report Chrome and Edge versions and flag hosts that haven't updated. It also kicks off Google's update mechanism on stale hosts.
# CVE-2026-85046 verification script - audits Chromium browser versions fleet-wide
# Run as SYSTEM or elevated admin. Extend $MinimumChromeVersion to the patched build per the Chrome advisory.
$MinimumChromeVersion = [version]"140.0.0.0" # UPDATE: set to the fixed build from Google's stable channel advisory
$results = @()
# --- Check installed Chrome version (64-bit and 32-bit registry hives) ---
$chromePaths = @(
"HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*",
"HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*"
)
$chrome = Get-ItemProperty $chromePaths -ErrorAction SilentlyContinue |
Where-Object { $_.DisplayName -like "Google Chrome*" } |
Select-Object -First 1
if ($chrome) {
$installedVersion = [version]($chrome.DisplayVersion)
$status = if ($installedVersion -lt $MinimumChromeVersion) { "VULNERABLE - UPDATE REQUIRED" } else { "Patched" }
$results += [pscustomobject]@{
Product = "Google Chrome"
Version = $installedVersion
Status = $status
Host = $env:COMPUTERNAME
}
if ($installedVersion -lt $MinimumChromeVersion) {
Write-Warning "Chrome $installedVersion is below the patched baseline. Triggering update check..."
# Kick Google Update if present
$updateTask = Get-ScheduledTask -ErrorAction SilentlyContinue | Where-Object { $_.TaskName -like "GoogleUpdateTaskMachine*" }
if ($updateTask) { $updateTask | Start-ScheduledTask }
}
} else {
$results += [pscustomobject]@{ Product = "Google Chrome"; Version = "Not Installed"; Status = "N/A"; Host = $env:COMPUTERNAME }
}
# --- Check running chrome.exe file version (catches portable/enterprise installs) ---
$runningChrome = Get-Process chrome -ErrorAction SilentlyContinue | Select-Object -First 1
if ($runningChrome) {
$fileVersion = [version]($runningChrome.MainModule.FileVersionInfo.ProductVersion -replace '[^\d\.].*$','')
$results += [pscustomobject]@{
Product = "Chrome (running process)"
Version = $fileVersion
Status = if ($fileVersion -lt $MinimumChromeVersion) { "RUNNING VULNERABLE BUILD - restart browser after update" } else { "Patched" }
Host = $env:COMPUTERNAME
}
}
# --- Check Edge version ---
$edgeExe = "${env:ProgramFiles(x86)}\Microsoft\Edge\Application\msedge.exe"
if (Test-Path $edgeExe) {
$edgeVersion = [version]((Get-Item $edgeExe).VersionInfo.ProductVersion)
$results += [pscustomobject]@{
Product = "Microsoft Edge"
Version = $edgeVersion
Status = "Verify against Edge stable channel - V8 inherits Chromium exposure"
Host = $env:COMPUTERNAME
}
}
$results | Format-Table -AutoSize
# Export for central collection:
# $results | Export-Csv "\\your-share\chrome-audit\$env:COMPUTERNAME.csv" -NoTypeInformation
Remediation
Act on this today — this is a KEV-listed, actively exploited browser engine vulnerability.
- Patch Chrome immediately. Update all instances of Google Chrome to the latest stable channel build that addresses CVE-2026-85046. Verify against the official advisory at https://chromereleases.googleblog.com and Google's security page. Do not assume auto-update worked — users who never close their browser will run the vulnerable build indefinitely. Enforce a browser restart policy.
- Patch every Chromium derivative. Microsoft Edge, Brave, Opera, and Vivaldi all ship V8. Track their respective security release channels; Edge patches generally follow Chrome's by a few days. Do not treat Edge as safe because "Chrome was patched."
- Don't forget Electron and CEF. Applications embedding Chromium (Teams, Slack, Discord, VS Code, and countless internal tools) carry their own bundled V8. Inventory these via your software asset management tooling and push vendors for updated builds.
- Meet the BOD 26-04 deadline. FCEB agencies must remediate by the due date specified in the KEV Catalog entry. Private-sector organizations should adopt the same window — KEV browser entries are typically given aggressive timelines for a reason: exploitation is already happening.
- Enforce update compliance centrally. Use Chrome Browser Cloud Management, Intune, or Group Policy to pin minimum browser versions, force update checks, and block launches of out-of-date builds where policy allows.
- Hunt before you close the ticket. Because exploitation predates the patch, run the detection queries above against at least the last 7–30 days of telemetry. A patched browser does not remove an implant that was dropped last week. Look for browser-spawned child processes, staged payloads in user-writable paths, and persistence mechanisms established around the exploitation window.
- Interim mitigations if patching is blocked: Restrict browsing via web filtering and category-based blocking of newly registered/uncategorized domains; enforce site isolation (enabled by default — verify it hasn't been disabled); consider blocking JavaScript on untrusted sites via policy for high-risk user populations (executives, finance, developers) until the patch lands.
The Bigger Picture
V8 type confusion vulnerabilities are a recurring pattern, not an anomaly — they are among the most exploited vulnerability classes year over year, favored by spyware vendors and state actors precisely because they require only a page load. If your vulnerability management program treats browser updates as "low priority because they auto-update," CVE-2026-85046 is your corrective case study. Browsers are the most exposed attack surface in the modern enterprise, and auto-update is a hope, not a control. Verify, enforce, and hunt.
Related Resources
Security Arsenal Penetration Testing Services AlertMonitor Platform Book a SOC Assessment vulnerability-management Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.