CVE-2021-21220
High · 8.8 CISA KEVCVSS
8.8
EPSS
70.4%
Published
Apr 26, 2021
CISA due date
Nov 17, 2021
Cloudanix analysis
A malicious web page could take over an out-of-date browser when someone visits it, putting the device and its data at risk.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a memory-corruption vulnerability in the V8 JavaScript engine caused by insufficient validation of untrusted input. A remote attacker can craft a malicious HTML page that triggers heap corruption when rendered by a vulnerable Chromium-based browser or embedded Chromium/V8 component. Successful exploitation can allow code execution in the context of the browser process, typically followed by sandbox escape or additional post-exploitation steps to gain broader system access. The vulnerability affects Google Chrome versions prior to 89.0.4389.128; the supplied package data also references libvirt/libvirt GIT with a fix at commit 5bb483f93739d41fe1b92ff950d78b59fbdb043b, so organizations should verify whether this record is being tracked through a downstream or packaging dependency and remediate both the browser/runtime and any affected source package mappings.
Why it matters to the business
Because this vulnerability has been exploited in the wild and is listed in CISA KEV with a remediation due date of 2021-11-17, it should be treated as a high-priority historical exposure and patch-compliance issue. Exploitation can occur through normal web-browsing activity, phishing links, malicious advertisements, compromised websites, or documents that render embedded web content. A successful attack can lead to endpoint compromise, credential theft, data access, malware deployment, lateral movement, and interruption of business operations. The high EPSS score indicates a materially elevated likelihood of exploitation compared with most vulnerabilities, so any remaining vulnerable browsers, embedded Chromium runtimes, or downstream packages represent meaningful operational risk.
How an attack unfolds
An attacker first prepares a web page containing JavaScript and HTML designed to exercise the V8 input-validation flaw and corrupt heap memory. The attacker then causes a target user or automated system to load the page through phishing, a compromised legitimate site, malicious advertising, or a link delivered through email or messaging. When a vulnerable Chrome or Chromium-based renderer processes the content, the crafted input can corrupt memory in a controlled way. The attacker uses that corruption to redirect execution flow and run attacker-controlled code within the browser renderer context. In realistic intrusions, this is often chained with a sandbox escape, privilege escalation, credential theft, or payload delivery to establish persistence and move further into the environment. Public exploitation has been observed, and the provided threat context refers to Chromium V8 improper input validation and related Chromium/Blink exploitation activity, so responders should assume that browser exploitation may have been used as an initial access vector where vulnerable versions remained deployed.
How to fix it
Upgrade Google Chrome and any Chromium-based browsers, embedded Chromium runtimes, Electron applications, CEF-based applications, or products bundling V8 to a version containing the fix. For Google Chrome, ensure systems are running 89.0.4389.128 or later; because this issue is old and actively exploited historically, current supported stable versions are strongly preferred over merely meeting the minimum fixed version. Where the supplied package mapping applies, update libvirt/libvirt GIT to include commit 5bb483f93739d41fe1b92ff950d78b59fbdb043b or a later trusted release containing that commit. Remove unsupported browser versions, disable unmanaged portable browser installs, and ensure auto-update is enabled. As compensating controls until patching is complete, restrict access to untrusted web content from sensitive systems, harden browser isolation and sandboxing, block known malicious sites and redirect chains, and use endpoint protection capable of detecting browser exploit behavior.
How to confirm the fix worked
Confirm the installed Chrome version is 89.0.4389.128 or later, preferably the latest supported stable release. On endpoints, validate browser versions through software inventory, endpoint management, package managers, or direct checks such as the browser About page and executable version metadata. Search for unmanaged Chromium-based browsers, portable browser copies, embedded runtimes, Electron applications, and CEF-based applications that may not be covered by standard browser patching. If libvirt/libvirt GIT is in scope for the tracked package data, confirm the source tree or downstream package includes commit 5bb483f93739d41fe1b92ff950d78b59fbdb043b or a later fixed release. Validate that browser auto-update policies are functioning and that endpoints have restarted after update installation. Confirm exposure reduction by scanning software inventory for vulnerable Chrome versions and reviewing EDR telemetry for any remaining launches of outdated Chrome/Chromium binaries.
Typical attack path
- Identify users or systems running a vulnerable Chrome or Chromium/V8-based component prior to the fixed version.
- Host or inject a crafted HTML/JavaScript payload on attacker-controlled infrastructure, a compromised website, or an advertising/redirect chain.
- Deliver the malicious URL through phishing, watering-hole compromise, malvertising, chat, email, or another user-driven channel.
- The victim opens the page, causing the vulnerable V8 engine to parse and execute attacker-controlled content.
- The crafted content triggers heap corruption in the renderer process.
- The exploit obtains code execution in the browser context and may download or stage additional payloads.
- The attacker chains additional techniques, such as sandbox escape, credential access, persistence, or lateral movement, to expand control.
How to detect it
To determine whether this was already exploited, focus on endpoint and web telemetry from systems that ran vulnerable Chrome or Chromium/V8-based components. Review EDR process trees for Chrome, Chromium, Electron, or CEF-based applications spawning unusual child processes such as command shells, scripting engines, download utilities, archive tools, or unknown executables. Examine browser crash telemetry, Windows Error Reporting, macOS crash reports, Linux core dumps, and application logs for renderer or V8 crashes occurring immediately before suspicious process execution or network activity. Correlate proxy, DNS, secure web gateway, and browser history records for visits to unusual domains, redirect chains, compromised sites, malvertising paths, or newly registered domains followed by endpoint alerts. Review download directories, browser cache, temporary directories, and user profile paths for payloads created shortly after suspicious browsing events. Because no single public payload string is inherent to the vulnerability, detection should be behavior-based: vulnerable browser version plus suspicious web navigation plus renderer crash or abnormal browser-spawned process. If the environment collects memory dumps, inspect crash dumps for evidence of controlled heap corruption and shellcode-like memory regions. Also review asset inventory for endpoints that missed the KEV remediation deadline and prioritize retrospective hunting on those systems.
- Google Chrome 89.0.4389.127
- Chrome/89.0.4389.127
- Chrome/89.0.4389.126
- Chrome/89.0.4389.114
- chrome.exe --type=renderer
- chrome.exe --type=utility
- chrome.exe spawning cmd.exe
- chrome.exe spawning powershell.exe
- chrome.exe spawning wscript.exe
- chrome.exe spawning cscript.exe
- chrome.exe spawning mshta.exe
- chrome.exe spawning rundll32.exe
- chrome.exe spawning regsvr32.exe
- chrome.exe spawning certutil.exe
- chrome.exe spawning bitsadmin.exe
- chrome.exe spawning curl.exe
- chrome.exe spawning wget.exe
- chrome.exe spawning bash
- chrome.exe spawning sh
- chrome_crashpad_handler
- chrome://crashes
- %LOCALAPPDATA%\Google\Chrome\User Data\Crashpad\reports\
- %LOCALAPPDATA%\Google\Chrome\User Data\Crashpad\pending\
- %LOCALAPPDATA%\Google\Chrome\User Data\Crashpad\completed\
- %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\
- %LOCALAPPDATA%\Google\Chrome\User Data\Default\Code Cache\js\
- ~/Library/Application Support/Google/Chrome/Crashpad/
- ~/Library/Application Support/Google/Chrome/Crashpad/pending/
- ~/Library/Application Support/Google/Chrome/Crashpad/completed/
- ~/.config/google-chrome/Crash Reports/
- ~/.config/google-chrome/Default/Code Cache/js/
- libvirt commit 5bb483f93739d41fe1b92ff950d78b59fbdb043b
What your security team should do
- Immediately identify and remediate any Chrome or Chromium-based browser versions older than 89.0.4389.128, prioritizing internet-facing user workstations, administrator workstations, jump hosts, developer systems, and systems that process external content.
- Treat remaining exposure as urgent because the vulnerability is in CISA KEV, has known in-the-wild exploitation, and has a high EPSS score.
- Verify whether the listed libvirt/libvirt GIT fixed commit is relevant to internal dependency tracking; if so, update to commit 5bb483f93739d41fe1b92ff950d78b59fbdb043b or a later release containing it.
- Hunt for signs of browser exploitation around the original disclosure and any period during which vulnerable versions were present, including renderer crashes, suspicious child processes spawned by browsers, and unexpected downloads or script execution following web browsing.
- Enforce browser auto-update, block unsupported browser versions from running, and remove unmanaged portable Chromium-based browsers.
- Apply browser hardening controls such as site isolation, sandbox enforcement, exploit protection, extension allowlisting, and restrictions on high-risk web content for privileged users.
- Correlate web proxy, DNS, EDR, and crash telemetry for users who visited unusual newly registered domains, redirect chains, or known exploit-kit infrastructure while running vulnerable versions.
- If suspected exploitation is found, isolate affected endpoints, collect browser crash dumps and EDR process trees, rotate exposed credentials, and investigate for follow-on persistence or lateral movement.
The record
Insufficient validation of untrusted input in V8 in Google Chrome prior to 89.0.4389.128 allowed a remote attacker to potentially exploit heap corruption via a crafted HTML page.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | chromium | 0 | 90.0.4430.72-1 |
| Debian:12 | chromium | 0 | 90.0.4430.72-1 |
| Debian:13 | chromium | 0 | 90.0.4430.72-1 |
| Debian:14 | chromium | 0 | 90.0.4430.72-1 |
| SUSE:Package Hub 15 SP2 | chromium | 0 | 89.0.4389.128-bp152.2.71.1 |
| Ubuntu:16.04:LTS | chromium-browser | 0 | 90.0.4430.72-0ubuntu0.16.04.1 |
| Ubuntu:18.04:LTS | chromium-browser | 0 | 90.0.4430.72-0ubuntu0.18.04.1 |
| openSUSE:Leap 15.2 | chromium | 0 | 89.0.4389.128-lp152.2.86.1 |
| openSUSE:Leap 15.2 NonFree | opera | 0 | 76.0.4017.94-lp152.2.43.1 |
| openSUSE:Tumbleweed | chromium | 0 | 113.0.5672.92-1.1 |
| openSUSE:Tumbleweed | chromium | 0 | 93.0.4577.82-1.1 |
Related vulnerabilities
- CVE-2025-6558 Insufficient validation of untrusted input in ANGLE and GPU in Google Chrome prior to… Also affects chromium
- CVE-2025-7656 Integer overflow in V8 in Google Chrome prior to 138.0.7204.157 allowed a remote attacker… Also affects chromium
- CVE-2025-6554 Type confusion in V8 in Google Chrome prior to 138.0.7204.96 allowed a remote attacker to… Also affects chromium
- CVE-2025-6191 Integer overflow in V8 in Google Chrome prior to 137.0.7151.119 allowed a remote attacker… Also affects chromium
- CVE-2025-5959 Type Confusion in V8 in Google Chrome prior to 137.0.7151.103 allowed a remote attacker… Also affects chromium
- CVE-2025-5419 Out of bounds read and write in V8 in Google Chrome prior to 137.0.7151.68 allowed a… Also affects chromium
- CVE-2022-2160 Insufficient policy enforcement in DevTools in Google Chrome on Windows prior to… Also affects chromium
- CVE-2022-0303 security update Also affects chromium