AddressSanitizer: heap-use-after-free [@ operator bool] with READ of size 8 through VRProcessManager
Categories
(Core :: Graphics, defect)
Tracking
()
People
(Reporter: decoder, Assigned: kip)
References
(Blocks 1 open bug)
Details
(4 keywords, Whiteboard: [post-critsmash-triage])
Attachments
(2 files, 1 obsolete file)
|
9.91 KB,
text/plain
|
Details | |
|
2.71 KB,
patch
|
daoshengmu
:
review+
abillings
:
sec-approval+
|
Details | Diff | Splinter Review |
| Reporter | ||
Comment 1•7 years ago
|
||
Comment 2•7 years ago
|
||
Comment 3•7 years ago
|
||
Comment 4•7 years ago
|
||
Updated•7 years ago
|
| Assignee | ||
Comment 5•7 years ago
|
||
| Assignee | ||
Comment 6•7 years ago
|
||
| Assignee | ||
Comment 7•7 years ago
|
||
| Assignee | ||
Comment 8•7 years ago
|
||
| Assignee | ||
Comment 9•7 years ago
|
||
| Assignee | ||
Comment 10•7 years ago
|
||
Updated•7 years ago
|
| Assignee | ||
Updated•7 years ago
|
| Assignee | ||
Comment 11•7 years ago
|
||
(In reply to :kip (Kearwood Gilbert) from comment #10)
Local testing using https://sketchfab.com and https://webvr.info/samples did
not show any problems with the attached patch.Running through try for a sanity check:
./mach try -b do -p all -u all[x64,10.10,Windows\ 10,Android\ 4.3] -t none
remote: View your changes here:
remote:
https://hg.mozilla.org/try/rev/77f3e8bee919ecc8275ded435a17c7c42a8827e8
remote:
https://hg.mozilla.org/try/rev/9bbe7ae4b64a6dc636715f0089dcd97a95e3e0b5
remote:
remote: Follow the progress of your build on Treeherder:
remote:
https://treeherder.mozilla.org/#/
jobs?repo=try&revision=9bbe7ae4b64a6dc636715f0089dcd97a95e3e0b5
Try push looks good
Comment 12•7 years ago
|
||
Comment on attachment 9034069 [details] [diff] [review]
Bug 1512429 - Ensure that VRProcessManager::Observer releases its pointer from VRProcessManager in case it outlives VRProcessManager and that only one VRProcessManager is allocated
LGTM. Thanks for helping this.
Comment 13•7 years ago
|
||
Hi Kip, is this ready for a sec-approval request? We've only got one Beta left before 65 goes into RC and it would be good to get this patch into it.
| Assignee | ||
Comment 14•7 years ago
|
||
Comment on attachment 9034069 [details] [diff] [review]
Bug 1512429 - Ensure that VRProcessManager::Observer releases its pointer from VRProcessManager in case it outlives VRProcessManager and that only one VRProcessManager is allocated
[Security Approval Request]
How easily could an exploit be constructed based on the patch?: The dom.vr.process.enabled pref is not yet enabled by default, and would need to be activated manually for this code to be hit.
The patch does not illustrate the means to create an exploit. This would have to be combined with another exploit that allows writing memory in the region that is accessed in the UAF. This crash occurs due to specific timing of events, but does not involve untrusted web content to overflow buffers or otherwise write to memory.
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?:
If not all supported branches, which bug introduced the flaw?: Bug 1430038
Do you have backports for the affected branches?: No
If not, how different, hard to create, and risky will they be?: Non risky, but little benefit as this feature is not enabled by default.
How likely is this patch to cause regressions; how much testing does it need?: Not likely to cause regressions, as it only affects code behind a pref (dom.vr.process.enabled), which is not yet enabled by default.
| Assignee | ||
Comment 15•7 years ago
|
||
I expect the scope of this vulnerability to be limited.
Upon closer inspection, it appears that the crash stack is not possible with the default pref setting. It is possible that someone manually enabled dom.vr.process.enabled mistakenly or that this was submitted from a Firefox developer's workstation.
This pref will soon be turned on by default; however, so this fix will still be needed.
| Assignee | ||
Comment 16•7 years ago
|
||
As this crash is occurring in code that is not enabled by default, perhaps it would not need to be sec-high
Comment 17•7 years ago
|
||
This can stay sec-high but if it is not currently on in beta or release, I'll mark it disabled there and give sec-approval. Please confirm the setting.
| Assignee | ||
Comment 18•7 years ago
|
||
(In reply to Al Billings [:abillings] from comment #17)
This can stay sec-high but if it is not currently on in beta or release, I'll mark it disabled there and give sec-approval. Please confirm the setting.
This sounds good to me, thanks! Please advise if I've missed any steps.
Comment 19•7 years ago
|
||
sec-approval+ for trunk. I don't think we need to backport this to Beta since it is disabled by default there.
Updated•7 years ago
|
Comment 20•7 years ago
|
||
Are you still planning to land this in nightly? And, I'm marking this as disabled in beta for 66 but please correct that if it's wrong.
| Assignee | ||
Comment 21•7 years ago
|
||
(In reply to Liz Henry (:lizzard) (use needinfo) from comment #20)
Are you still planning to land this in nightly? And, I'm marking this as disabled in beta for 66 but please correct that if it's wrong.
Indeed, tree was closed earlier. I will land this right away.
Comment 22•7 years ago
|
||
https://hg.mozilla.org/integration/mozilla-inbound/rev/489bd0cf5e1c262b64f2f1c2a4d2d20dd237c6ff
https://hg.mozilla.org/mozilla-central/rev/489bd0cf5e1c
Updated•6 years ago
|
Updated•5 years ago
|
Updated•5 years ago
|
Description
•