What Is Internet Explorer's JScript/VBScript Engine?
Internet Explorer's scripting engines — JScript (the Microsoft implementation of JavaScript) and VBScript — execute script code from web pages within the browser's process. These engines parse and run potentially untrusted script code from any visited web page, making them a primary attack surface for remote code execution via malicious JavaScript or VBScript. Memory corruption vulnerabilities in scripting engines that allow an attacker to control heap memory can be exploited to execute arbitrary code in the context of the browser user.
Overview
CVE-2016-0189 is a memory corruption remote code execution vulnerability in Internet Explorer's JScript and VBScript scripting engines. When a user visits a malicious web page in IE, the scripting engine processes crafted JavaScript or VBScript that triggers an out-of-bounds write, corrupting heap memory in a way that enables code execution at the user's privilege level. The AC:H (high complexity) CVSS component reflects that reliable exploitation requires specific conditions — typically an information leak for ASLR bypass. CVE-2016-0189 was actively exploited in targeted APT attacks. Patched in MS16-051 (May 10, 2016).
Affected Versions
| Internet Explorer | Status |
|---|---|
| Internet Explorer 9 | Vulnerable |
| Internet Explorer 10 | Vulnerable |
| Internet Explorer 11 | Vulnerable |
Fixed in MS16-051 (May 2016 Patch Tuesday).
Technical Details
Root Cause: JScript/VBScript Memory Corruption
CVE-2016-0189 involves an out-of-bounds write (CWE-787) in Internet Explorer's JScript or VBScript engine during the processing of certain script constructs. The scripting engine incorrectly handles a crafted object or expression, leading to a write operation that targets memory outside the intended buffer bounds — corrupting adjacent heap memory.
The exploitation pattern for scripting engine vulnerabilities:
- Trigger the memory corruption — serve crafted JavaScript or VBScript that causes the out-of-bounds write
- Heap grooming — use JavaScript object allocations to shape the heap, placing a controlled object adjacent to the corrupted region
- Type confusion — the corruption overwrites a JavaScript object's type information, causing the engine to treat attacker-controlled data as a trusted object
- ASLR bypass — the
AC:Hrating reflects that a separate information leak (such as CVE-2016-0162) is often required for reliable exploitation in modern IE configurations with DEP and ASLR enabled - Code execution — the type confusion is leveraged to execute arbitrary shellcode or ROP chain at user privilege level
High Complexity Context
The AC:H rating distinguishes CVE-2016-0189 from simpler memory corruption vulnerabilities. In 2016, reliable exploitation of IE memory corruption typically required:
- An information disclosure primitive to defeat ASLR (leaking heap or stack addresses)
- Careful heap grooming to achieve reliable type confusion
- DEP bypass via a valid ROP chain using known IE/OS module gadgets
This complexity was within reach of sophisticated APT actors and mature exploit kit operators but was less trivial than CVSS 9.8 "always works" exploits.
Attack Characteristics
| Attribute | Detail |
|---|---|
| Attack Vector | Network — malicious web page visited in IE |
| Complexity | High (ASLR bypass typically required) |
| User Interaction | Required (visit page) |
| Impact | Code execution at browser user privilege level |
| Exploitation | Targeted APT campaigns; exploit kits |
Discovery
Reported to Microsoft and patched in MS16-051 (May 2016 Patch Tuesday). Security researchers documented targeted exploitation by APT actors in the May–June 2016 period following publication.
Exploitation Context
- Targeted APT exploitation: CVE-2016-0189 was used in targeted attacks by APT groups (security researchers documented exploitation consistent with North Korean and other state-sponsored actors) against South Korean targets and others, leveraging the IE scripting engine vulnerability for initial access to victim workstations
- Exploit kit adoption: Following public disclosure and patch availability, CVE-2016-0189 was incorporated into exploit kits targeting unpatched IE users via malvertising and compromised websites
- IE as attack vector: IE remained the enterprise standard browser in many organizations in 2016 due to legacy application compatibility requirements; IE's continued deployment in enterprise environments provided a persistent attack surface despite Microsoft's introduction of Edge
- IE EOL: Internet Explorer reached end-of-life June 15, 2022. All IE versions are permanently unsupported
- CISA KEV (2022): Added March 2022
Remediation
-
Apply MS16-051 (May 2016) — included in IE cumulative updates.
-
Migrate from Internet Explorer — IE is end-of-life as of June 15, 2022. Migrate to Microsoft Edge. Edge's IE Mode supports legacy applications without exposing the full IE scripting engine attack surface.
-
Disable VBScript in IE — in environments that cannot immediately migrate from IE, disable VBScript in Internet Zone via Internet Options → Security → Custom Level → Scripting → Active Scripting; this eliminates VBScript-based exploitation of this class of vulnerability.
-
Enhanced Protected Mode (EPM) — enable IE Enhanced Protected Mode, which sandboxes IE processes and limits the damage from successful exploitation.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2016-0189 |
| Vendor / Product | Microsoft — Internet Explorer |
| NVD Published | 2016-05-11 |
| NVD Last Modified | 2025-10-22 |
| CVSS 3.1 Score | 7.5 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Severity | HIGH |
| CWE | CWE-787 — Out-of-Bounds Write find similar ↗ |
| CISA KEV Added | 2022-03-28 |
| CISA KEV Deadline | 2022-04-18 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2016-05-10 | Microsoft Security Bulletin MS16-051 released; CVE-2016-0189 patched (May 2016 Patch Tuesday) |
| 2016-05-11 | CVE-2016-0189 published by NVD |
| 2016-05 | Security researchers report CVE-2016-0189 exploitation in targeted attacks by threat actors associated with South Korean and other APT campaigns |
| 2022-03-28 | Added to CISA Known Exploited Vulnerabilities catalog |
| 2022-04-18 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2016-0189 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |
| Microsoft Security Bulletin MS16-051 — Cumulative Security Update for Internet Explorer | Vendor Advisory |