Ensure that WebVR attack surface isn't exposed over IPC when dom.vr.enabled is false
Categories
(Core :: WebVR, task)
Tracking
()
People
(Reporter: jld, Unassigned)
References
Details
I was wondering if turning off WebVR with a pref flip (bug 1750902) was sufficient to prevent a compromised content process from starting the VR process and possibly accessing exposed attack surface.
Looking specifically for exposure of the VR process management code, I found this check in GPUChild::RecvCreateVRProcess
, but notice that that tests dom.vr.process.enabled
, which controls whether use of WebVR would be remoted to a separate process; that's not the same as dom.vr.enabled
and it's still true on Windows. So that allows the GPU process to start the VR process unconditionally (GPUChild
is actually the parent), but the GPU process isn't sandboxed yet so that's not a useful attack by itself. I tried tracing the control flow back to the content process, but it's complicated, and I think it might be a good idea to release-assert that dom.vr.enabled
is set closer to where it matters (in RecvCreateVRProcess
and/or in the VRProcessParent
constructor).
Also, there may be other IPC interfaces related to WebVR that should be audited.
Comment 2•3 years ago
|
||
I think this is a dupe. Feel free to reopen if it is not.
Updated•3 years ago
|
Updated•2 years ago
|
Description
•