CVE-2016-7201 — Microsoft Edge Memory Corruption Vulnerability

CVE-2016-7201

Microsoft Edge Chakra — Type Confusion in JavaScript Engine Enables Remote Code Execution via Malicious Web Page; Patched MS16-145 (November 2016)

What Is Microsoft Edge?

Microsoft Edge is the Windows 10 default browser, powered by the Chakra (ChakraCore) JavaScript engine. Chakra performs just-in-time compilation, speculative type optimization, and dynamic execution of JavaScript — the core of modern web application processing. Type confusion vulnerabilities in JIT engines are particularly impactful: when an engine incorrectly tracks an object's type, it may allow an attacker to read or write arbitrary memory by creating an object that is treated as the wrong type, bypassing all the engine's normal bounds checks and type safety enforcement.

Overview

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

CVE-2016-7201 is a type confusion vulnerability in the Chakra JavaScript engine in Microsoft Edge. The Chakra engine's JIT compiler or type inference system incorrectly tracks the type of a JavaScript object, allowing an attacker to create a situation where the engine accesses object data as the wrong type — providing an arbitrary read/write primitive in the Edge process memory. Patched in MS16-145 (November 8, 2016) alongside the closely related CVE-2016-7200 (Chakra OOB write). CISA added both CVEs to the KEV catalog in March 2022.

Affected Versions

Microsoft Edge Status
Edge on Windows 10 (pre-MS16-145) Vulnerable
Edge on Windows 10 with MS16-145 applied Fixed
Internet Explorer Not affected (uses JScript engine, not Chakra)

Technical Details

Root Cause: JIT Type Confusion

CVE-2016-7201 is a type confusion vulnerability (CWE-843) in Chakra's JavaScript engine. Modern JavaScript engines maintain type information about objects to perform type-specialized optimization — compiling code paths that assume an object is always an integer array, for example. When the type inference is incorrect or can be confused by attacker-controlled JavaScript, the engine accesses object data using wrong type semantics.

Type confusion impact:

  • Arbitrary read — treating an array object as an integer causes data fields (including pointers) to be interpreted as the integer value; reading back the "integer" reveals internal pointers
  • ASLR bypass — reading internal Chakra pointers reveals the base address of JavaScript engine memory, defeating Address Space Layout Randomization
  • Arbitrary write — writing a "float" to a position that the engine treats as an object pointer allows redirecting function dispatch
  • Code execution — redirected function pointer causes execution of attacker-controlled code in the Edge process

Exploitation Chain with CVE-2016-7200

CVE-2016-7201 and CVE-2016-7200 (OOB write) were patched together and exploited together:

  • CVE-2016-7201 (type confusion) → ASLR bypass: reading internal pointers reveals memory layout
  • CVE-2016-7200 (OOB write) → code execution: corrupting heap state using the known memory layout for reliable exploitation

This is the standard two-stage browser exploit pattern: information leak to defeat ASLR, then memory corruption to achieve control of execution.

Attack Characteristics

Attribute Detail
Attack Vector Network — malicious web page
User Interaction Required — victim visits attacker-controlled page
Authentication None required
Impact Arbitrary read/write in Edge process; remote code execution
ASLR Bypass Yes — type confusion provides pointer leak

Discovery

Identified through Microsoft's internal security research or external coordinated disclosure; patched in the November 2016 Patch Tuesday (MS16-145) alongside multiple other Chakra and Edge vulnerabilities.

Exploitation Context

  • Type confusion as ASLR bypass: CVE-2016-7201 is the classic first stage in a browser exploit chain — providing the pointer leak needed to defeat ASLR before triggering the code execution primitive; exploitation in the wild used it precisely in this role alongside CVE-2016-7200
  • Exploit kit adoption: In 2016, Chakra vulnerabilities began appearing in exploit kits as Windows 10 adoption grew; the stable exploit chain provided by CVE-2016-7200 + CVE-2016-7201 made it an attractive target for kit integration
  • Targeted attack use: Edge-targeting Chakra exploits were used in targeted campaigns against Windows 10 users who had moved away from IE, representing attacker adaptation to browser changes
  • CISA KEV (2022): Added March 2022 alongside CVE-2016-7200, reflecting confirmed exploitation of both vulnerabilities as part of the same attack chains

Remediation

CISA BOD 22-01 Deadline: April 18, 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. Apply MS16-145 — install the November 2016 Microsoft Edge security update via Windows Update, WSUS, or MECM. All subsequent Windows 10 cumulative updates include this fix.

  2. Keep Windows 10 fully updated — cumulative updates include all prior Edge and Chakra patches; ensure systems are current.

  3. Enable Windows Defender SmartScreen — blocks known malicious URLs and exploit kit delivery infrastructure before exploit execution.

  4. Migrate to Chromium-based Microsoft Edge — the modern Chromium-based Edge replaces the legacy EdgeHTML/Chakra stack affected by CVE-2016-7201 with the V8 JavaScript engine and receives independent security updates.

Key Details

PropertyValue
CVE ID CVE-2016-7201
Vendor / Product Microsoft — Edge
NVD Published2016-11-10
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-843 — Access of Resource Using Incompatible Type ('Type Confusion') find similar ↗
CISA KEV Added2022-03-28
CISA KEV Deadline2022-04-18
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-04-18. Apply updates per vendor instructions.

Timeline

DateEvent
2016-11-08Microsoft releases MS16-145 patching CVE-2016-7201 and CVE-2016-7200 (Chakra memory corruption in Edge)
2016-11-10CVE-2016-7201 published by NVD
2022-03-28Added to CISA Known Exploited Vulnerabilities catalog
2022-04-18CISA BOD 22-01 remediation deadline