CVE-2016-5287
Critical · 9.8CVSS
9.8
EPSS
2.3%
Published
Jun 11, 2018
CISA due date
—
Cloudanix analysis
An old flaw in Firefox could let a bad website take over someone's computer, but updating the browser long ago fixed the problem.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Full Compromise
- Component
- Application
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Low
- Patch risk
- Low
What it actually does
Use-after-free during actor destruction involving service workers leads to memory corruption that can be leveraged for arbitrary code execution.
Why it matters to the business
Attackers could remotely compromise user systems running vulnerable Firefox versions, resulting in data theft, malware installation, or loss of control over affected endpoints.
How an attack unfolds
An attacker hosts a malicious page that loads a service worker; when the worker's actor is destroyed, a dangling reference is reused to corrupt memory and gain code execution in the browser process.
How to fix it
Upgrade all instances of Mozilla Firefox to version 49.0.2 or later; disable service workers via enterprise policy if immediate patching is impossible.
How to confirm the fix worked
Verify installed Firefox version is 49.0.2 or newer; review browser crash reports for service-worker actor destruction signatures and confirm absence of related memory-corruption indicators.
Typical attack path
- Host or compromise a webpage that registers a service worker
- Trigger navigation or worker lifecycle events that initiate actor destruction
- Reuse the freed object to achieve memory corruption
- Execute arbitrary code within the browser sandbox or escape it
How to detect it
Examine browser crash logs and telemetry for service-worker actor destruction events; correlate web proxy logs with known exploit delivery domains; review endpoint process creation anomalies following browser activity.
What your security team should do
- Immediately deploy Firefox 49.0.2+ across the environment
- Block known malicious domains associated with historical service-worker exploits at the proxy or firewall
- Enable enterprise update enforcement and audit for any remaining pre-49.0.2 instances
The record
A potentially exploitable use-after-free crash during actor destruction with service workers. This issue does not affect releases earlier than Firefox 49. This vulnerability affects Firefox < 49.0.2.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Mageia:5 | iceape | 0 | 2.48-1.mga5 |
| Mageia:6 | iceape | 0 | 2.48-1.mga6 |
| Ubuntu:14.04:LTS | firefox | 0 | 49.0.2+build2-0ubuntu0.14.04.1 |
| Ubuntu:16.04:LTS | firefox | 0 | 49.0.2+build2-0ubuntu0.16.04.2 |
| openSUSE:Tumbleweed | MozillaFirefox | 0 | 50.1.0-1.1 |
| openSUSE:Tumbleweed | firefox-esr | 0 | 128.5.1-1.1 |
Related vulnerabilities
- CVE-2017-7826 Memory safety bugs were reported in Firefox 56 and Firefox ESR 52.4. Also affects iceape
- CVE-2017-7805 During TLS 1.2 exchanges, handshake hashes are generated which point to a message buffer. Also affects iceape
- CVE-2017-7810 Memory safety bugs were reported in Firefox 55 and Firefox ESR 52.3. Also affects iceape
- CVE-2017-7793 A use-after-free vulnerability can occur in the Fetch API when the worker or the… Also affects iceape
- CVE-2017-7753 An out-of-bounds read occurs when applying style rules to pseudo-elements, such as… Also affects iceape
- CVE-2017-5465 An out-of-bounds read while processing SVG content in "ConvolvePixel". Also affects iceape
- CVE-2017-5470 Memory safety bugs were reported in Firefox 53 and Firefox ESR 52.1. Also affects iceape
- CVE-2017-5447 An out-of-bounds read during the processing of glyph widths during text layout. Also affects iceape