IPC: use-after-free crash with Msg_PPluginScriptableObjectConstructor [@~PluginScriptableObjectParent]
Categories
(Core Graveyard :: Plug-ins, defect, P2)
Tracking
(firefox-esr6871+ fixed, firefox61 wontfix, firefox63 wontfix, firefox64 wontfix, firefox65 wontfix, firefox70 wontfix, firefox71+ fixed, firefox72+ fixed)
People
(Reporter: posidron, Assigned: handyman)
References
(Blocks 1 open bug)
Details
(Keywords: crash, csectype-uaf, sec-high, Whiteboard: [post-critsmash-triage][adv-main71+r][adv-esr68.3+r])
Crash Data
Attachments
(3 files, 1 obsolete file)
27.22 KB,
text/plain
|
Details | |
56.65 KB,
text/plain
|
Details | |
47 bytes,
text/x-phabricator-request
|
pascalc
:
approval-mozilla-beta+
RyanVM
:
approval-mozilla-esr68+
tjr
:
sec-approval+
|
Details | Review |
Updated•7 years ago
|
Reporter | ||
Comment 1•7 years ago
|
||
Comment 2•7 years ago
|
||
Reporter | ||
Comment 3•7 years ago
|
||
Reporter | ||
Comment 4•7 years ago
|
||
Updated•7 years ago
|
Updated•7 years ago
|
Comment 5•7 years ago
|
||
Comment 6•6 years ago
|
||
Comment 7•6 years ago
|
||
Assignee | ||
Comment 8•6 years ago
|
||
Assignee | ||
Comment 9•6 years ago
|
||
Assignee | ||
Comment 10•6 years ago
|
||
Assignee | ||
Comment 11•6 years ago
|
||
Reporter | ||
Comment 12•6 years ago
|
||
Assignee | ||
Comment 13•6 years ago
|
||
Reporter | ||
Comment 14•6 years ago
|
||
Assignee | ||
Comment 15•6 years ago
|
||
Comment 16•6 years ago
|
||
Backed out for mochitest failure at layout/generic/test/test_plugin_focus.html:
https://hg.mozilla.org/integration/autoland/rev/75be9882c2aea62baa2c00dd0d2ba15532300fc6
Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&resultStatus=usercancel%2Cretry%2Ctestfailed%2Cbusted%2Cexception&group_state=expanded&revision=49be7aaa199c0be85ec2667c650d4627cfec84c1
Please check that link, there are e.g. clipboard failures and also this: https://treeherder.mozilla.org/logviewer.html#?job_id=221160290&repo=autoland
[task 2019-01-10T20:49:11.460Z] 20:49:11 INFO - TEST-START | layout/generic/test/test_plugin_focus.html
[task 2019-01-10T20:54:12.815Z] 20:54:12 INFO - TEST-INFO | started process screentopng
[task 2019-01-10T20:54:13.102Z] 20:54:13 INFO - TEST-INFO | screentopng: exit 0
[task 2019-01-10T20:54:13.103Z] 20:54:13 INFO - TEST-UNEXPECTED-FAIL | layout/generic/test/test_plugin_focus.html | Test timed out.
[task 2019-01-10T20:54:13.104Z] 20:54:13 INFO - SimpleTest.ok@SimpleTest/SimpleTest.js:275:7
[task 2019-01-10T20:54:13.105Z] 20:54:13 INFO - reportError@SimpleTest/TestRunner.js:121:7
[task 2019-01-10T20:54:13.105Z] 20:54:13 INFO - TestRunner._checkForHangs@SimpleTest/TestRunner.js:142:7
[task 2019-01-10T20:54:13.106Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.107Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.107Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.107Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.108Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.109Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.110Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.110Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.111Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.112Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.112Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.113Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.113Z] 20:54:13 INFO - setTimeout handlerTestRunner._checkForHangs@SimpleTest/TestRunner.js:163:5
[task 2019-01-10T20:54:13.114Z] 20:54:13 INFO - TestRunner.runTests/<@SimpleTest/TestRunner.js:381:9
[task 2019-01-10T20:54:13.114Z] 20:54:13 INFO - promise callbackTestRunner.runTests@SimpleTest/TestRunner.js:368:50
[task 2019-01-10T20:54:13.115Z] 20:54:13 INFO - RunSet.runtests@SimpleTest/setup.js:201:3
[task 2019-01-10T20:54:13.116Z] 20:54:13 INFO - RunSet.runall@SimpleTest/setup.js:180:5
[task 2019-01-10T20:54:13.116Z] 20:54:13 INFO - hookupTests@SimpleTest/setup.js:273:5
[task 2019-01-10T20:54:13.117Z] 20:54:13 INFO - parseTestManifest@http://mochi.test:8888/manifestLibrary.js:36:5
[task 2019-01-10T20:54:13.117Z] 20:54:13 INFO - getTestManifest/req.onload@http://mochi.test:8888/manifestLibrary.js:49:11
Comment 18•5 years ago
|
||
David, is this still something you might work on?
I'm going through some untouched-for-a-while sec-high issues to make sure we've investigated all we can before marking them stalled.
Assignee | ||
Comment 19•5 years ago
|
||
Hmm.. This had fallen off my radar while I was on WebGL but I'm turning back to plugin sandboxing issues now so I'll add it to that list.
Updated•5 years ago
|
Comment 20•5 years ago
|
||
Wontfix at this point for 70. We could still take a patch in 71/72.
Assignee | ||
Comment 21•5 years ago
|
||
Properly handles NPError reporting and makes sure that, in the case of failure, it does not return junk for the NPObject.
Assignee | ||
Updated•5 years ago
|
Assignee | ||
Comment 22•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
Security Approval Request
- How easily could an exploit be constructed based on the patch?: Not easily. It at least requires plugin use and some special IPC control at plugin start.
- Do comments in the patch, the check-in comment, or tests included in the patch paint a bulls-eye on the security problem?: No
- Which older supported branches are affected by this flaw?: all
- If not all supported branches, which bug introduced the flaw?: None
- Do you have backports for the affected branches?: No
- If not, how different, hard to create, and risky will they be?: The patch is small and simple and this area of code is largely inactive. Effort is somewhere between trivial and mild.
- How likely is this patch to cause regressions; how much testing does it need?: Unlikely. It adds rare error handling that would otherwise always be a UAF.
Updated•5 years ago
|
Comment 23•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
sec-approved to land now and request uplifts
Assignee | ||
Comment 24•5 years ago
|
||
Not sure what the smart move is on uplifting this so I'm going to land it and give it a week or so on nightly. We have time before the next release. Its not really high volume enough (on nightly or anywhere) for that to be a great test but it will give some confidence that we don't break anything serious before uplifting.
Comment 25•5 years ago
|
||
https://hg.mozilla.org/integration/autoland/rev/e017a75fabe40fad39edd3dbfc3a111636155684
https://hg.mozilla.org/mozilla-central/rev/e017a75fabe4
Comment 26•5 years ago
|
||
Can this be verified manually? If yes, could you please help us with STR or testcase?
Assignee | ||
Comment 27•5 years ago
|
||
Unfortunately, we never figured out how to force this -- it was found with fuzzing and appears in crash-stats so the idea is to land this to see if it fixes the issue. But I'm not even 100% sure this will stop the crashes. That's much of why I want to wait a bit before uplift.
Assignee | ||
Comment 28•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
Beta/Release Uplift Approval Request
- User impact if declined: Crashes, about 200 a month related to signatures that I believe this covers.
- Is this code covered by automated tests?: No
- Has the fix been verified in Nightly?: Yes
- Needs manual test from QE?: No
- If yes, steps to reproduce:
- List of other uplifts needed: None
- Risk to taking this patch: Medium
- Why is the change risky/not risky? (and alternatives if risky): All it does is return a valid error instead of undefined data. This should always be at least as good as what we have and I believe the error handling is sound so it should only fix things. Having said that, its only had about a week of exposure on nightly and that's really not enough to say that its been fixed, given the infrequency.
- String changes made/needed:
Assignee | ||
Comment 29•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
ESR Uplift Approval Request
- If this is not a sec:{high,crit} bug, please state case for ESR consideration: critical
- User impact if declined: Crashes -- see beta uplift answer for details.
- Fix Landed on Version: 72
- Risk to taking this patch: Medium
- Why is the change risky/not risky? (and alternatives if risky): The code is probably safe but it is infrequent and can't be said to have been tested in Nightly. See beta-uplift answer for details.
- String or UUID changes made by this patch:
Updated•5 years ago
|
Comment 30•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
Was on 2 weeks in Nightly and we are in our last week of betas, uplift approved for 71 beta 11, thanks.
Comment 31•5 years ago
|
||
uplift |
Updated•5 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Comment 32•5 years ago
|
||
Comment on attachment 9099447 [details]
Bug 1449736: Properly detect failure in receiving plugin NPObjects r=jmathies!
Approved for 68.3esr also.
Comment 33•5 years ago
|
||
uplift |
Updated•5 years ago
|
Updated•5 years ago
|
Updated•4 years ago
|
Updated•3 years ago
|
Description
•