Created attachment 8811325 [details] Valgrind complaints I ran gtests on valgrind and noticed that SandboxBrokerCommon::SendWithFd can send uninitialised stack allocated data out of process. I suspect this is due to alignment holes in char cmsg_buf in that function. Partly because it seems ungood to have an information leak, and partly to stop valgrind complaining, I'd prefer to zero initialise that array. It's only 24 bytes, at least on x86_64-linux.
Running gtests on valgrind is a bit tricky. STR: run valgrind-listener in a different shell. This listens on port 1500. export MOZVFLAGS="--num-transtab-sectors=24 --px-default=allregs-at-mem-access \ --px-file-backed=unwindregs-at-mem-access --fair-sched=yes \ --fullpath-after=/MOZ/ --trace-children=yes --show-mismatched-frees=no" DISPLAY=:1.0 G_SLICE=always-malloc v312BRANCH $MOZVFLAGS \ "--trace-children-skip=/usr/bin/which,/usr/bin/file,/usr/bin/uname,/sbin/ldconfig,/usr/bin/cat,/usr/bin/awk,/usr/bin/sed,/usr/bin/whoami,/usr/bin/true,/*/bin/gcc,/usr/bin/gmake" \ --track-origins=yes --log-socket=127.0.0.1:1500 --num-callers=40 \ ./mach gtest
Created attachment 8811617 [details] [diff] [review] bug1318012-2.cset
Keywords: csectype-uninitialized, sec-moderate
Attachment #8811617 - Flags: review?(jld) → review+
status-firefox53: affected → fixed
Target Milestone: --- → mozilla53
Status: NEW → RESOLVED
Last Resolved: 2 years ago
Resolution: --- → FIXED
The sec-* keywords on this bug might be a bit on the high side — at worst it's an information leak of a few bytes (and I haven't verified that the bytes actually are copied to the other process), it always reads from the same place on the broker thread's stack, _and_ it needs to be combined with a sec-critical to do anything.
Should we consider backporting this to 52 for the next ESR?
status-firefox51: --- → wontfix
status-firefox52: --- → affected
Thanks for checking, but there's no benefit to uplifting this. The file broker is used only for content processes, and content sandboxing won't be enabled for non-nightly builds until 53 at the earliest. (I'm not sure if "unaffected" is the right flag, because nightly 52 *was* affected, but aurora/beta/release/etc. 52 aren't.)
status-firefox52: affected → unaffected
We generally use the disabled status for features that aren't riding that train. Thanks!
status-firefox52: unaffected → disabled
Whiteboard: sblc2 → sblc2, [post-critsmash-triage]
status-firefox-esr52: --- → disabled
You need to log in before you can comment on or make changes to this bug.