Skip to main content
Mallory
HighCISA KEVExploited in the wildPublic exploit

V8 TheHole exception-handling bug leading to Chrome renderer RCE

IdentifiersCVE-2021-38003CWE-755· Improper Handling of Exceptional…

CVE-2021-38003 is an inappropriate implementation flaw in the V8 JavaScript engine affecting Google Chrome prior to 95.0.4638.69. The bug is in V8 exception handling during JSON.stringify(), specifically in the JsonStringifier::SerializeArrayLikeSlow() path. Under an overflow condition reached through IncrementalStringBuilder::Accumulate() via Extend(), the code can return EXCEPTION without first setting pending_exception. Because V8 uses the internal sentinel value TheHole when no exception is pending, later exception handling can expose TheHole to attacker-controlled JavaScript. Public exploitation research showed that leaking TheHole can be abused to corrupt JavaScript Map state, obtain out-of-bounds array access, derive addrof and V8 heap read/write primitives, and ultimately achieve arbitrary write. In Chromium-based browsers this can be turned into renderer remote code execution from a crafted HTML page. Google reported exploitation in the wild.

Share:
For your environment

Are you exposed to this one?

Mallory correlates every CVE against your assets, your vendors, and active adversary campaigns. Know which vulnerabilities matter for you, not just which ones are loud.

ANALYST BRIEF

Impact, mitigation & remediation

What it means. What to do now. Patch path, mitigations, and the assume-compromise checklist.

Impact

What an attacker gets, and what they’ve been doing with it.

Successful exploitation can yield remote code execution in the Chrome renderer process when a target visits a crafted HTML page. The vulnerability enables powerful memory-corruption primitives inside V8, including out-of-bounds access, address disclosure, V8 heap read/write, and arbitrary write, which can be used to execute attacker-controlled code in the renderer context. Impact is therefore compromise of the browser rendering process, with follow-on risk dependent on sandbox escape or chaining with additional vulnerabilities.

Mitigation

If you can’t patch tonight, do this now.

Primary mitigation is prompt patching. Until updates are fully deployed, reduce exposure by restricting use of untrusted web content, isolating high-risk browsing activity, and enforcing rapid browser auto-update policies across managed fleets. Because exploitation is delivered via crafted web content, network filtering and URL isolation may reduce opportunistic exposure, but no reliable mitigation short of patching is indicated in the provided material.

Remediation

Patch, then assume compromise.

Update Google Chrome and Chromium-based browsers to version 95.0.4638.69 or later, and apply any subsequent vendor security updates. The documented fix added a guard to ensure a pending exception exists before it is fetched, preventing exposure of TheHole; Google also later added hardening to prevent TheHole-based JSMap deletion abuse. Downstream Chromium consumers should incorporate the upstream V8 fixes and any related hardening patches.
PUBLIC EXPLOITS

Exploits

1 valid exploit after Mallory filtered fakes, detection scripts, and README-only repos.

VALID 1 / 1 TOTALView more in app
Chrome-V8-RCE-CVE-2021-38003MaturityPoCVerified exploit

This repository contains a working exploit for CVE-2021-38003, a remote code execution vulnerability in the V8 JavaScript engine used by Google Chrome. The structure consists of an HTML file (exp.html) that acts as the main entry point, and two JavaScript files (wps2.js, wps3.js) that implement the exploit logic and payload. The exploit leverages a vulnerability in V8 to achieve arbitrary read/write primitives, then uses WebAssembly to allocate RWX memory and injects x86 shellcode for execution. The shellcode is embedded as a byte array in the JavaScript files. The exploit is operational and demonstrates full code execution in the browser context, requiring the user to open the HTML file in a vulnerable version of Chrome. No external network endpoints or domains are hardcoded; the exploit is self-contained and targets the local browser process.

SpiralBL0CKDisclosed Jan 7, 2023javascripthtmlbrowser
EXPOSURE SURFACE

Affected products & vendors

Products and vendors Mallory has correlated with this vulnerability. Open in Mallory to drill down to specific CPE configurations and version ranges.

VendorProductType
DebianDebian Linuxoperating_system
Fedora ProjectFedoraoperating_system
GoogleChromeapplication

Vendor-confirmed product mapping. Mallory continuously reconciles this list against your asset inventory.

What this page doesn’t show

The version that knows your environment.

This page is what’s public. Mallory adds the parts that aren’t: which of your assets are affected, which adversaries are exploiting it right now, which detections to deploy, and what to do tonight.
Exposure mapping

Query your assets running an affected version, and investigate the blast radius.

Threat actor evidence

Every observed campaign linking this CVE to a named adversary.

Associated malware2

Malware families riding this exploit, with evidence and IOCs.

Detection signatures2

YARA, Sigma, Snort, and vendor rules, auto-deployed to your SIEM.

Vendor-by-vendor mapping

Cross-references every affected SKU, including bundled OEM variants.

Social activity

Community discussion across Reddit, Mastodon, and other social sources.