CVE-2016-1586
High · 7.5CVSS
7.5
EPSS
0.7%
Published
Apr 22, 2019
CISA due date
—
Cloudanix analysis
A flaw in an older web browsing component could let a malicious webpage interfere with private browsing sessions, potentially changing how the browser behaves.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Tampering
- Component
- Application
- Class
- Improper Input Validation
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
A malicious webview can register persistent unload handlers that retain references to an incognito BrowserContext already scheduled for destruction, enabling reuse of a freed or invalid context.
Why it matters to the business
Attackers can corrupt browser state or force unintended behavior in applications embedding the affected webview component, potentially leading to integrity violations without requiring user interaction.
How an attack unfolds
An attacker supplies a crafted web page or content to the vulnerable webview; the page installs unload handlers that keep the incognito context alive past its destruction point, allowing subsequent reuse of the invalid context to alter browser behavior.
How to fix it
Upgrade Oxide to version 1.18.3 or later. Applications embedding Oxide should rebuild against the fixed library and verify no downstream components retain older versions.
How to confirm the fix worked
Confirm the running Oxide library version is 1.18.3 or newer via package manager or build metadata; test webview behavior with crafted unload scenarios to ensure incognito contexts are properly isolated and destroyed.
Typical attack path
- Deliver malicious content to an application using the vulnerable Oxide webview
- Trigger navigation or page unload to install long-lived handlers
- Reuse the queued-for-destruction incognito BrowserContext
- Achieve integrity impact through context reuse
How to detect it
Review application logs for unexpected webview context reuse or errors during incognito session teardown; examine crash reports or memory dumps for references to freed BrowserContext objects after page unload events.
What your security team should do
- Identify all products and deployments using Oxide before 1.18.3
- Prioritize upgrade to 1.18.3+ in affected webview-dependent applications
- Monitor for any downstream dependents still shipping older Oxide versions
- Review application code that creates or manages incognito contexts for safe destruction patterns
The record
A malicious webview could install long-lived unload handlers that re-use an incognito BrowserContext that is queued for destruction in versions of Oxide before 1.18.3.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Ubuntu:14.04:LTS | oxide-qt | 0 | 1.18.3-0ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | oxide-qt | 0 | 1.18.3-0ubuntu0.16.04.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 oxide-qt
- CVE-2017-5029 The xsltAddTextString function in transform.c in libxslt 1.1.29, as used in Blink in… Also affects oxide-qt
- 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 oxide-qt
- CVE-2017-5030 Incorrect handling of complex species in V8 in Google Chrome prior to 57.0.2987.98 for… Also affects oxide-qt
- 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 oxide-qt
- CVE-2016-5198 V8 in Google Chrome prior to 54.0.2840.90 for Linux, and 54.0.2840.85 for Android, and… Also affects oxide-qt
- CVE-2016-5204 Leaking of an SVG shadow tree leading to corruption of the DOM tree in Blink in Google… Also affects oxide-qt
- CVE-2014-9911 Stack-based buffer overflow in the ures_getByKeyWithFallback function in… Also affects oxide-qt