CVE-2016-5198
High · 8.8 CISA KEVCVSS
8.8
EPSS
34.2%
Published
Jan 19, 2017
CISA due date
Jun 22, 2022
Cloudanix analysis
A flaw in the browser engine allowed attackers to take full control of a computer simply by getting the user to visit a malicious web page.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Incorrect optimisation assumptions in V8 lead to memory corruption that permits arbitrary read and write operations, enabling remote code execution.
Why it matters to the business
Attackers can fully compromise affected systems through a malicious web page, resulting in data theft, ransomware deployment, or persistent access; the vulnerability remains actively exploited years after disclosure and carried a CISA remediation deadline of 2022-06-22.
How an attack unfolds
An attacker crafts a malicious HTML page that triggers the flawed optimisation in V8, performs out-of-bounds memory access to achieve arbitrary read/write, then escalates to arbitrary code execution within the browser process; known exploitation has been observed in the wild against Chrome on multiple platforms.
How to fix it
Upgrade affected Chrome installations to at least version 54.0.2840.90 (Linux), 54.0.2840.85 (Android), or 54.0.2840.87 (Windows/Mac); for kfreebsd-10 on Debian 10 apply package version 10.3~svn300087-1 or later.
How to confirm the fix worked
Verify Chrome and related package versions against the fixed releases; inspect browser process memory protections and test with known proof-of-concept pages in an isolated environment; confirm absence of the vulnerable V8 optimisation paths via source or binary diffing.
Typical attack path
- Deliver crafted HTML page via phishing, watering-hole, or compromised site
- Trigger incorrect optimisation in V8 to corrupt memory
- Use read/write primitives to bypass ASLR and DEP
- Execute shellcode or load malicious payload in browser context
- Pivot to host compromise or credential theft
How to detect it
Review web proxy and browser process logs for visits to suspicious domains followed by unexpected crashes or new child processes; correlate with endpoint telemetry showing memory anomalies or code injection after HTML rendering; search historic packet captures for crafted pages matching the vulnerability pattern.
What your security team should do
- Immediately upgrade all Chrome instances and the listed Debian package to the fixed versions
- Block known malicious domains and enforce strict content filtering for untrusted HTML
- Enable sandboxing, site isolation, and exploit mitigations in browser configurations
- Monitor KEV-listed vulnerabilities for remaining unpatched assets and document exceptions
The record
V8 in Google Chrome prior to 54.0.2840.90 for Linux, and 54.0.2840.85 for Android, and 54.0.2840.87 for Windows and Mac included incorrect optimisation assumptions, which allowed a remote attacker to perform arbitrary read/write operations, leading to code execution, via a crafted HTML page.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:8 | chromium-browser | 0 | 55.0.2883.75-1~deb8u1 |
| Mageia:5 | chromium-browser-stable | 0 | 54.0.2840.100-1.1.mga5 |
| Red Hat:rhel_extras:6 | chromium-browser | 0 | 0:54.0.2840.90-1.el6 |
| Red Hat:rhel_extras:6 | chromium-browser-debuginfo | 0 | 0:54.0.2840.90-1.el6 |
| SUSE:Package Hub 12 | chromium | 0 | 54.0.2840.90-112.1 |
| Ubuntu:14.04:LTS | chromium-browser | 0 | 58.0.3029.81-0ubuntu0.14.04.1172 |
| Ubuntu:14.04:LTS | oxide-qt | 0 | 1.18.5-0ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | chromium-browser | 0 | 55.0.2883.87-0ubuntu0.16.04.1263 |
| Ubuntu:16.04:LTS | libv8-3.14 | 0 | No fix |
| Ubuntu:16.04:LTS | oxide-qt | 0 | 1.18.5-0ubuntu0.16.04.1 |
| Ubuntu:18.04:LTS | libv8-3.14 | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | libv8-3.14 | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | libv8-3.14 | 0 | No fix |
| openSUSE:Tumbleweed | chromium | 0 | 113.0.5672.92-1.1 |
| openSUSE:Tumbleweed | chromium | 0 | 55.0.2883.75-3.1 |
Related vulnerabilities
- CVE-2016-9651 A missing check for whether a property of a JS object is private in V8 in Google Chrome… Also affects chromium-browser
- CVE-2017-5029 The xsltAddTextString function in transform.c in libxslt 1.1.29, as used in Blink in… Also affects chromium-browser
- CVE-2017-5040 V8 in Google Chrome prior to 57.0.2987.98 for Mac, Windows, and Linux and 57.0.2987.108… Also affects chromium-browser
- CVE-2017-5030 Incorrect handling of complex species in V8 in Google Chrome prior to 57.0.2987.98 for… Also affects chromium-browser
- CVE-2017-5006 Blink in Google Chrome prior to 56.0.2924.76 for Linux, Windows and Mac, and 56.0.2924.87… Also affects chromium-browser
- CVE-2016-5204 Leaking of an SVG shadow tree leading to corruption of the DOM tree in Blink in Google… Also affects chromium-browser
- CVE-2016-5170 WebKit/Source/bindings/modules/v8/V8BindingForModules.cpp in Blink, as used in Google… Also affects chromium-browser
- CVE-2016-5141 Blink, as used in Google Chrome before 52.0.2743.116, allows remote attackers to spoof… Also affects chromium-browser