DEV Community

Ashraf
Ashraf

Posted on

CVE-2026-85046: The V8 Type Confusion Bug Being Exploited in Chrome Right Now

The V8 Bug Being Weaponized Right Now: CVE-2026-85046

Google's September 5 Chrome release note included this line: "Google is aware that an exploit for CVE-2026-85046 exists in the wild." That's the safety switch being thrown, not the alarm. The exploit is live. Your browser, and every Chromium-based browser your users run, was a remote code execution target from any webpage until you patched.

Here's what the bug is, why it bypasses Chrome's sandbox, how the disclosure economics make no sense, and what you should do right now.

What CVE-2026-85046 Actually Is

Type confusion in V8. CWE-843 — "Access of Resource Using Incompatible Type."

V8 is the JavaScript and WebAssembly engine inside Chrome, Edge, Brave, Opera, and every Electron app. When V8 compiles JavaScript, it applies optimizations based on the types it infers at JIT compile time. A type confusion bug means the engine's internal type tracking diverges from what the object actually is in memory, and the optimizer generates code that operates on the wrong type layout.

The consequence: what the compiler thinks is a harmless array of floats may actually be an object with function pointers. Reading past the expected boundary, or writing into a slot at the wrong offset, gives an attacker native memory read/write from inside the renderer process.

That's the sandbox bypass vector. The exploit chain is:

  1. Land the JS exploit — craft a value that triggers V8's type confusion, gaining arbitrary read/write inside the renderer
  2. Bypass the Chrome sandbox — use the renderer's elevated IPC channels and kernel vulnerabilities to break out to the host OS
  3. Execute payload — the attacker now runs native code on the user's machine

This isn't a speculative attack class. Type confusion in V8 has been used in dozens of in-the-wild exploit campaigns over the past several years.

Who Found It and What They Got Paid

Salvatore Gulizia (also known as Serotav) reported the vulnerability on August 4, 2026. It took Google 32 days to ship a fix in Chrome 152.0.7977.82/.83 for Windows and Mac, and 152.0.7977.82 for Linux.

The reward: $1,000.

That's not a typo. The Chromium Vulnerability Reward Program paid one thousand dollars for a high-severity, actively exploited remote code execution vulnerability in the most widely deployed browser engine on the planet. HN comments on the thread — which hit 746 points — zeroed in on this immediately:

"If someone submits a critical issue like this, it makes sense to pay them what the bug's actually worth. Why should a researcher be effectively penalized for responsibly telling a vendor instead of selling the bug to a 'research firm' or three-letter agency?"

Zero-day brokers routinely pay six figures for reliable V8 exploits. Google pays $1,000. That gap creates exactly the incentive structure you'd expect.

How Type Confusion Bypasses the Sandbox

Chrome's sandbox is the most sophisticated browser sandbox deployed at scale. It uses namespace isolation, seccomp-bpf syscall filtering, and reduced-privilege token ACLs on Windows. A renderer compromise should be contained.

But sandbox is not a silver bullet. Type confusion in V8 gives the attacker write-what-where inside the renderer process. With that primitive, the attacker can:

  1. Leak Chrome's base address by reading known offsets in the renderer's memory space
  2. Patch the renderer's sandbox IPC handler to issue privileged operations the sandbox normally restricts
  3. Exploit a kernel vulnerability (or an existing one like CVE-2026-85048 — use-after-free in Compositing, also patched in this release) to achieve full system compromise

The Chromium security team has invested heavily in mitigations like CFG, ACG, and CET in the renderer, but a write-what-where is the attacker's perpetual-motion machine. If you can write anywhere once, you can chain whatever you need.

The Sandbox-by-Default World Still Has a V8 Problem

One of the most pointed HN comments on the thread:

"Normalising running arbitrary code delivered over the internet (in the form of JavaScript and WASM), as a necessary condition for accessing most web pages may not have been one of the best decisions we have made."

Every page you visit delivers a payload to V8. The attack surface is unbounded — every new language feature, every optimization path, every JIT compiler tweak introduces new code paths for fuzzers to find type confusion in. The past year alone has seen 5–10 actively-exploited V8 type confusion vulnerabilities.

The CISA and NSA have called for memory-safe languages. V8's runtime is written in C++, which handles type information through manual tagging, inline caching, and feedback vectors — all of which can desync under the right crafted input. Rust and Go handle this at the language level. V8 handles it through engineering vigilance, and vigilance is a losing strategy against automated fuzzing.

What's Patched and What Isn't

The September 5 update addresses 12 security fixes:

CVE Component Severity In the Wild?
CVE-2026-85046 V8 (Type confusion) High Yes
CVE-2026-85048 Compositing (UAF) High No
CVE-2026-85045 V8 (Race condition) High No
CVE-2026-85050 WebGL (OOB write) High No
CVE-2026-85051 Compositing (Type confusion) High No
CVE-2026-85042 DevTools (UAF) High No
CVE-2026-85049 Skia (UAF) High No
CVE-2026-85043 Network (Incomplete cleanup) High No
CVE-2026-85052 CrashReporting (OOB read) High No
CVE-2026-85053 CacheStorage (Resource exposure) High No
CVE-2026-85047 Transactions Platform (Input validation) Medium No
CVE-2026-85044 Mobile (Released resource) Medium No

CVE-2026-85046 is the only one confirmed exploited in the wild. But a 12-vulnerability security release for a single point update (152.0.7977.76 → .82) tells you how much attack surface a browser engine carries.

What You Should Do Right Now

Update Chrome immediately. Chrome → About → Check for updates. Restart. Verify you're on 152.0.7977.82 or later.

Same for Edge, Brave, Opera, Vivaldi, and any Electron-based app that auto-updates (Slack, Discord, VS Code). Electron apps bundle their own V8 — they won't be patched by updating the system Chrome. Check each app for updates.

If you manage endpoints at scale, push the update through your MDM fleet. The exploit is live. The gap between disclosure and mass deployment is the window attackers are working in.

For developers: if you build on Electron or Chrome Embedded Framework, update your pinned Chromium version and ship a release. Your users don't know they need to patch an embedded browser.

The Uncomfortable Math

Google paid $1,000 for an exploit chain worth six figures on the open market. The researcher disclosed responsibly. The bug was weaponized before it was patched.

It doesn't take a security researcher to see the misalignment. When the economics of vulnerability disclosure are this skewed, the rational choice for a skilled finder shifts toward the private market, not toward the vendor who pays you a month's living expenses for a bug that affects billions of devices.

Patch your browser. Check your Electron apps. And if you've ever wondered why zero-days keep getting sold before they're disclosed — this is the price signal that makes it happen.


Sources: Chrome Release Blog — Stable Channel Update for Desktop, Sep 5 2026, CVE-2026-85046 on NVD, HN discussion (746 pts, 442 comments), CWE-843: Type Confusion. Bug reported by Salvatore Gulizia (Serotav) on 2026-08-04. Chrome 152.0.7977.82/.83 for Windows/Mac, 152.0.7977.82 for Linux.

Top comments (0)