CVE-2016-1646 — Google Chromium V8 Out-of-Bounds Read Vulnerability

CVE-2016-1646

Chromium V8 Engine — Out-of-Bounds Array Read in JavaScript Enables RCE in Chrome Renderer; Fixed Chrome 49.0.2623.108 (March 2016)

What Is Chromium V8?

V8 is Google's open-source, high-performance JavaScript and WebAssembly engine, used in Chrome, Chromium, Edge, Opera, Node.js, and many other applications. V8 compiles JavaScript to native machine code using just-in-time (JIT) compilation, making JavaScript performance competitive with native code. Because V8 processes untrusted JavaScript from every web page, vulnerabilities in V8's engine — particularly in its JIT compiler, type inference, or array bounds handling — are among the highest-impact browser security issues. A memory corruption vulnerability in V8 can enable code execution in the renderer process, which can then be leveraged (with a sandbox escape) for full system compromise.

Overview

Actively Exploited. This vulnerability has been added to CISA's Known Exploited Vulnerabilities (KEV) Catalog on June 8, 2022. Federal agencies are required to apply mitigations per BOD 22-01.

CVE-2016-1646 is an out-of-bounds read vulnerability in V8, the JavaScript engine used by Chromium-based browsers, that allows a remote attacker to execute arbitrary code or cause a denial of service via crafted JavaScript. The vulnerability can be exploited by serving malicious JavaScript to any browser using a Chromium V8 version prior to the fix — this includes Google Chrome, and potentially Chromium-based Microsoft Edge and Opera versions of the same era. Fixed in Chrome 49.0.2623.108 (March 24, 2016). CISA added CVE-2016-1646 to the KEV catalog in June 2022.

Affected Versions

Browser Version Status
Google Chrome < 49.0.2623.108 Vulnerable
Chromium-based browsers (Chromium V8 equivalent era) Pre-fix versions Vulnerable
Google Chrome 49.0.2623.108+ Fixed

Technical Details

Root Cause: Out-of-Bounds Read in V8 Array Handling

CVE-2016-1646 is an out-of-bounds read (CWE-125) in V8's JavaScript engine, specifically in how it handles JavaScript arrays or typed arrays during execution. The vulnerability occurs when V8 accesses memory beyond the declared bounds of an array object — reading data from adjacent heap memory.

While classified as an out-of-bounds read, such vulnerabilities in JIT-compiled JavaScript engines can enable code execution through:

  1. Memory disclosure — the out-of-bounds read leaks adjacent heap contents, potentially revealing memory layout (defeating ASLR), object pointers, or type information
  2. Type confusion — if the read value is then used as a pointer or type indicator, adjacent heap data interpreted as a V8 object can produce type confusion
  3. Heap corruption — combined with a write primitive (via type confusion), the vulnerability chain can overwrite function pointers or JIT-compiled code in the renderer process
  4. Renderer code execution — code executes within the Chrome renderer sandbox
  5. Sandbox escape — a separate sandbox escape (often chained with a kernel LPE) is needed for full system compromise

Cross-Browser Impact

V8 is embedded in multiple browsers beyond Chrome:

  • Google Chrome — primary affected browser
  • Chromium — the open-source base for many browsers
  • Opera (Chromium-based since 2013)
  • Microsoft Edge — prior to becoming Chromium-based in 2020, Edge used Chakra rather than V8; the original Chakra-based Edge was not affected

Attack Characteristics

Attribute Detail
Attack Vector Network — malicious JavaScript in web page
User Interaction Required (visit malicious page in affected browser)
Impact Code execution in Chrome renderer process
Root Cause Out-of-bounds array read in V8 engine
Browsers Affected Chrome, Chromium-based browsers

Discovery

Reported by anonymous researcher (or Google's Project Zero team); Google released the fix in Chrome 49.0.2623.108 on March 24, 2016.

Exploitation Context

  • Browser engine exploitation: V8 vulnerabilities are among the highest-value browser exploits because they enable code execution in the renderer process for any browser using the affected V8 version; Chrome's rapid auto-update cycle limits the exposure window for patched users, but enterprise environments with managed Chrome deployments or delayed updates extend it
  • Exploit kit integration: Chrome/V8 exploits are significantly more complex to weaponize reliably than Flash exploits were; CVE-2016-1646 exploitation required sophisticated heap manipulation, limiting its practical use to well-resourced actors
  • Chrome sandbox: Even successful V8 exploitation only achieves code execution within Chrome's renderer sandbox — a second sandbox escape vulnerability is needed for full OS access, increasing the complexity of the full attack chain
  • CISA KEV (2022): Added June 2022, reflecting confirmed exploitation

Remediation

CISA BOD 22-01 Deadline: June 22, 2022. Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.
  1. Update Google Chrome — upgrade to Chrome 49.0.2623.108 or later (any current Chrome version is patched). Chrome auto-updates by default — verify automatic updates are not disabled.

  2. Update other Chromium-based browsers — ensure Chromium-based browsers (Opera, older Edge) are updated to versions that include the V8 fix.

  3. Enable Chrome auto-updates — ensure Chrome's auto-update mechanism is not blocked by enterprise policy or network restrictions; Chrome browser security updates should be applied rapidly.

  4. Site isolation — Chrome's Site Isolation feature (enabled by default in Chrome 67+) limits the impact of renderer process compromises by separating sites into separate renderer processes.

Key Details

PropertyValue
CVE ID CVE-2016-1646
Vendor / Product Google — Chromium V8
NVD Published2016-03-29
NVD Last Modified2025-10-22
CVSS 3.1 Score8.8
CVSS 3.1 VectorCVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
SeverityHIGH
CWE CWE-125 — Out-of-bounds Read find similar ↗
CISA KEV Added2022-06-08
CISA KEV Deadline2022-06-22
Known Ransomware Use No

CVSS 3.1 Breakdown

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Required Action

CISA BOD 22-01 Deadline: 2022-06-22. Apply updates per vendor instructions.

Timeline

DateEvent
2016-03-24Google releases Chrome 49.0.2623.108 patching CVE-2016-1646 (out-of-bounds read in V8)
2016-03-29CVE-2016-1646 published by NVD
2022-06-08Added to CISA Known Exploited Vulnerabilities catalog
2022-06-22CISA BOD 22-01 remediation deadline