Commit Graph

1187 Commits

Author SHA1 Message Date
Bob Owen
6c01f6d0bd Bug 1481518 part 2: Enable aarch64 Windows chromium sandbox code. r=froydnj 2018-12-14 13:07:35 +00:00
Bob Owen
f71af67dbf Bug 1481518 part 1: Add aarch64 Windows support to the chromium sandbox code. r=handyman
This patch includes the changes that Microsoft landed for the sandbox along
with other changes to the supporting base files that they depend upon.
2018-12-14 13:07:35 +00:00
Mark Banner
0304564ac7 Bug 1415483 - Apply the new options to reject-importGlobalProperties across the codebase, remove unnecessary importGlobalProperties. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13754

--HG--
extra : moz-landing-system : lando
2018-12-11 21:39:40 +00:00
Michael Froman
d385314704 Bug 1513101 - re-add L section for HANDLES_DUP_BROKER to RDD Win sanbox to fix mochitest crashes. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D14109

--HG--
extra : moz-landing-system : lando
2018-12-11 18:50:21 +00:00
Csoregi Natalia
9e970681f2 Backed out 2 changesets (bug 1415483) for multiple failures e.g. on test_message_manager_ipc.html. CLOSED TREE
Backed out changeset d00748de66fc (bug 1415483)
Backed out changeset 8dea94258f54 (bug 1415483)
2018-12-11 19:30:57 +02:00
Mark Banner
1abdc8687f Bug 1415483 - Apply the new options to reject-importGlobalProperties across the codebase, remove unnecessary importGlobalProperties. r=nika
Differential Revision: https://phabricator.services.mozilla.com/D13754

--HG--
extra : moz-landing-system : lando
2018-12-11 14:09:44 +00:00
Gian-Carlo Pascutto
d8bb24d28e Bug 1507830 - When using Wayland, don't allow connections to the X server. r=jld
Differential Revision: https://phabricator.services.mozilla.com/D13560

--HG--
extra : moz-landing-system : lando
2018-11-30 22:23:31 +00:00
Sylvestre Ledru
265e672179 Bug 1511181 - Reformat everything to the Google coding style r=ehsan a=clang-format
# ignore-this-changeset

--HG--
extra : amend_source : 4d301d3b0b8711c4692392aa76088ba7fd7d1022
2018-11-30 11:46:48 +01:00
Michael Froman
b6e960b34c Bug 1498624 - pt2 - Implement Win sandbox for RDD process. r=bobowen
Differential Revision: https://phabricator.services.mozilla.com/D13101

--HG--
extra : moz-landing-system : lando
2018-11-29 17:02:16 +00:00
Sylvestre Ledru
ef05004811 Bug 1503537 - Get rid of the pdfium & mortar code r=peterv
Differential Revision: https://phabricator.services.mozilla.com/D10352

--HG--
extra : moz-landing-system : lando
2018-11-28 19:31:21 +00:00
Jed Davis
e9397cfcac Bug 1508898 - Prepare the Linux sandbox's socketcall/ipc-call dispatch table for reformatting. r=gcp
The tables in SandboxFilterUtil.cpp should remain vertically aligned,
but clang-format would disagree.  This patch excludes that region from
reformatting, and applies the other changes that clang-format would make
there.

Differential Revision: https://phabricator.services.mozilla.com/D12499

--HG--
extra : moz-landing-system : lando
2018-11-21 11:05:31 +00:00
Haik Aftandilian
b890a6606e Bug 1506776 - 17.78% Base Content Resident Unique Memory regression r=Alex_Gaynor
Until more analysis is done, add back access to com.apple.CoreServices.coreservicesd to avoid extra allocations that are triggered when the service is blocked.

Differential Revision: https://phabricator.services.mozilla.com/D12479

--HG--
extra : moz-landing-system : lando
2018-11-20 22:06:06 +00:00
Alex Gaynor
bef9ade569 Bug 1428361 - remove some 'on by default' permissions from the macOS plugin sandbox; r=haik
Differential Revision: https://phabricator.services.mozilla.com/D11892

--HG--
extra : moz-landing-system : lando
2018-11-14 16:46:05 +00:00
Sylvestre Ledru
2b4847d320 Bug 1506538 - Remove +x permissions on C++ source files r=Ehsan
Differential Revision: https://phabricator.services.mozilla.com/D11609

--HG--
extra : moz-landing-system : lando
2018-11-13 15:32:08 +00:00
Haik Aftandilian
b1a4ba8dff Bug 1505445 - [Mac] With sandbox early startup, start the sandbox after the port exchange r=Alex_Gaynor
Don't start the sandbox until after the port exchange so the parent process does not have to wait longer in ContentParent::LaunchSubprocess() for the (expensive) sandbox_init_with_parameters call to complete in the child. Remove the policy rule allowing access to the parent port now that it is already open when the sandbox is initialized and therefore not needed.

Differential Revision: https://phabricator.services.mozilla.com/D11186

--HG--
extra : moz-landing-system : lando
2018-11-08 21:04:19 +00:00
Tom Ritter
24a82c667b Bug 1504022 - Backout 1498693 to restore mingw exceptions for __try/__except r=bobowen
mingw-clang, when using SEH exceptions, compile these fine but don't unwind
them properly. When using sj/lj exceptions it can't compile them at all.

--HG--
extra : histedit_source : 4bda121d4d60ab6e7cf51a3d4287261c81904fe2
2018-11-02 13:06:24 -05:00
Haik Aftandilian
2ca07b2f4a Bug 1502228 - [Mac] With sandbox early startup enabled, some form elements are not rendered r=Alex_Gaynor
Add the /private/var directory to the list of file-read-metadata paths to avoid rendering issues on macOS 10.14 when sandbox early startup is enabled.

Differential Revision: https://phabricator.services.mozilla.com/D9933

--HG--
extra : moz-landing-system : lando
2018-10-26 18:51:37 +00:00
Haik Aftandilian
49e56fe77b Bug 1431441 - Part 5 - Parameterize access to the windowserver in the Mac content sandbox policy r=Alex_Gaynor
Only allow access to "com.apple.windowserver.active" when the pref
"security.sandbox.content.mac.disconnect-windowserver" is set to true.

Depends on D6721

Differential Revision: https://phabricator.services.mozilla.com/D7357

--HG--
extra : moz-landing-system : lando
2018-10-18 20:49:51 +00:00
Haik Aftandilian
cf8dfa28d7 Bug 1431441 - Part 4 - ASSERT the sandbox is already enabled r=Alex_Gaynor
When early initialization of the sandbox is enabled, assert that the sandbox has already been enabled in ContentProcess::Init().

Depends on D6720

Differential Revision: https://phabricator.services.mozilla.com/D6721

--HG--
extra : moz-landing-system : lando
2018-10-18 20:47:43 +00:00
Haik Aftandilian
81b56d13a8 Bug 1431441 - Part 3 - Start the Mac content sandbox earlier r=Alex_Gaynor
Pass sandbox parameters to content processes on the command line allowing for early sandbox startup.

Pref'd off behind "security.sandbox.content.mac.earlyinit" until it's ready to be enabled by default.

Once early startup is enabled by default and considered stable, the original sandbox startup code can be removed.

Depends on D6719

Differential Revision: https://phabricator.services.mozilla.com/D6720

--HG--
extra : moz-landing-system : lando
2018-10-19 18:23:16 +00:00
Haik Aftandilian
851ee0f677 Bug 1431441 - Part 2 - Remove rules for APP_BINARY_PATH and APP_DIR Mac sandbox parameters r=Alex_Gaynor
Simplify the content sandbox policy by removing APP_BINARY_PATH and APP_DIR Mac sandbox parameters and their associated rules in the policy. Keep APP_PATH which is a parent directory of APP_BINARY_PATH and APP_DIR. Change APP_PATH to be the path to the parent process .app directory and make GetAppPath return this path when called from the parent or a child process.

Depends on D6717

Differential Revision: https://phabricator.services.mozilla.com/D6719

--HG--
extra : moz-landing-system : lando
2018-10-19 18:23:06 +00:00
Mark Banner
ceaeb93550 Bug 1486741 - Enable ESLint rule comma-dangle for all of mozilla-central (automatic fixes). r=mossop
Differential Revision: https://phabricator.services.mozilla.com/D8389

--HG--
extra : moz-landing-system : lando
2018-10-19 12:55:39 +00:00
Chris Martin
deeb744526 Bug 1496364 - Minor refactor to stop uninitialized variable warning r=handyman
The compiler warns that jobLevel is uninitialized if none of the if-else
conditions are true. Simply replacing the leading assert with a
"else crash" tells the compiler that case will never actually happen.

Differential Revision: https://phabricator.services.mozilla.com/D8841

--HG--
extra : moz-landing-system : lando
2018-10-18 19:14:05 +00:00
David Parks
8ad763743e Bug 1426733: Use restricting SIDs in Windows NPAPI process sandbox (r=bobowen)
Allow NPAPI sandbox to use restricting SIDs.  This hardens the plugin sandbox.

Differential Revision: https://phabricator.services.mozilla.com/D8746

--HG--
extra : moz-landing-system : lando
2018-10-18 16:27:56 +00:00
Tom Ritter
4c8004df52 Bug 1498695 Revert casting to void* (1462100) because mingwclang doesn't need to do that. r=bobowen 2018-10-16 11:33:32 +03:00
Tom Ritter
cc01d26509 Bug 1498694 Revert the patch that relaxes the MSVC requirement (1431807) since mingw-clang passes it now r=bobowen 2018-10-12 13:45:49 -05:00
Tom Ritter
8ae788d2db Bug 1498693 - Revert the other part of 1431803, since mingw-clang can handle it now r=bobowen 2018-10-12 13:44:37 -05:00
Tom Ritter
8626230808 Bug 1498672 Include string.h explicitly instead of relying on algorithm to bring it in r=bobowen
The mingw-clang build was broken because the dependency wasn't specified explicitly.
2018-10-12 12:55:16 -05:00
Narcis Beleuzu
a2990eb898 Backed out 7 changesets (bug 1431441) as per haik`s request.
Backed out changeset 1dfdc7ba998d (bug 1431441)
Backed out changeset fb1a4ddbf9bf (bug 1431441)
Backed out changeset b59b1651fc15 (bug 1431441)
Backed out changeset 1e2bb579b824 (bug 1431441)
Backed out changeset 2a635530dfa3 (bug 1431441)
Backed out changeset 262da0be2fed (bug 1431441)
Backed out changeset b9cfda58fed3 (bug 1431441)

--HG--
extra : rebase_source : 7baf60c49683b419c0603979b0dff3befb2fbaf0
2018-10-14 18:20:01 +03:00
David Parks
99e17d748f Bug 1488439: Part 1 - Replace Windows temp folder in sandboxed plugin process (r=bobowen,erahm)
The sandbox blocks GetTempFileName's prior response, causing the system to end up searching a number of (inaccessible) folders to use as a replacement for the temp folder.  This patch provides a path to a new folder on the command line for the plugin process.  This new temp folder, specific to this plugin process instance, is then communicated to the system via the TEMP/TMP environment variables.  This is similar to what is done for the content process but avoids nsDirectoryService, which doesn't exist in plugin processes.

Differential Revision: https://phabricator.services.mozilla.com/D7532

--HG--
extra : moz-landing-system : lando
2018-10-12 22:36:22 +00:00
Coroiu Cristina
4224edc453 Backed out 2 changesets (bug 1488439) for build bustage at /build/src/dom/plugins/ipc/PluginProcessParent.cpp on a CLOSED TREE
Backed out changeset 74b2087ee696 (bug 1488439)
Backed out changeset 85575fc37555 (bug 1488439)
2018-10-12 21:00:41 +03:00
David Parks
1ad569c6b1 Bug 1488439: Part 1 - Replace Windows temp folder in sandboxed plugin process (r=bobowen,erahm)
The sandbox blocks GetTempFileName's prior response, causing the system to end up searching a number of (inaccessible) folders to use as a replacement for the temp folder.  This patch provides a path to a new folder on the command line for the plugin process.  This new temp folder, specific to this plugin process instance, is then communicated to the system via the TEMP/TMP environment variables.  This is similar to what is done for the content process but avoids nsDirectoryService, which doesn't exist in plugin processes.

Differential Revision: https://phabricator.services.mozilla.com/D7532

--HG--
extra : moz-landing-system : lando
2018-10-12 17:40:10 +00:00
Haik Aftandilian
fd43db7f44 Bug 1431441 - Part 5 - Parameterize access to the windowserver in the Mac content sandbox policy r=Alex_Gaynor
Only allow access to "com.apple.windowserver.active" when the pref
"security.sandbox.content.mac.disconnect-windowserver" is set to true.

Depends on D6721

Differential Revision: https://phabricator.services.mozilla.com/D7357

--HG--
extra : moz-landing-system : lando
2018-10-11 22:49:44 +00:00
Haik Aftandilian
e5a942f82a Bug 1431441 - Part 4 - ASSERT the sandbox is already enabled r=Alex_Gaynor
When early initialization of the sandbox is enabled, assert that the sandbox has already been enabled in ContentProcess::Init().

Depends on D6720

Differential Revision: https://phabricator.services.mozilla.com/D6721

--HG--
extra : moz-landing-system : lando
2018-10-11 22:46:29 +00:00
Haik Aftandilian
b9bdcdedb1 Bug 1431441 - Part 3 - Start the Mac content sandbox earlier r=Alex_Gaynor
Pass sandbox parameters to content processes on the command
line allowing for early sandbox startup. Limited to Nightly
until confirmed to be stable and ready to ride the trains.

Enable early sandbox startup by default on Nightly and use
pref "security.sandbox.content.mac.earlyinit" to disable
early startup for debugging purposes.

Once early startup is stable, the original sandbox startup
code can be removed.

Depends on D6719

Differential Revision: https://phabricator.services.mozilla.com/D6720

--HG--
extra : moz-landing-system : lando
2018-10-11 22:44:25 +00:00
Haik Aftandilian
a710b03285 Bug 1431441 - Part 2 - Remove rules for APP_BINARY_PATH and APP_DIR Mac sandbox parameters r=Alex_Gaynor
Simplify the content sandbox policy by removing APP_BINARY_PATH and APP_DIR Mac sandbox parameters and their associated rules in the policy. Keep APP_PATH which is a parent directory of APP_BINARY_PATH and APP_DIR.

Depends on D6717

Differential Revision: https://phabricator.services.mozilla.com/D6719

--HG--
extra : moz-landing-system : lando
2018-10-11 22:42:24 +00:00
Jim Mathies
494b622f3f Bug 1497643 - Enable Chromium sandbox option MITIGATION_IMAGE_LOAD_PREFER_SYS32 for content processes. r=bowen 2018-10-11 09:23:03 -05:00
Tiberius Oros
3edd9afbe3 Backed out 5 changesets (bug 1431441) for failing devtools at client/debugger/new/test/mochitest/browser_dbg_rr_breakpoints-01.js on OSX opt a=backout
Backed out changeset 94a1d1d67191 (bug 1431441)
Backed out changeset be7ec7438701 (bug 1431441)
Backed out changeset db6b7ee04187 (bug 1431441)
Backed out changeset f61ec0f140c2 (bug 1431441)
Backed out changeset ac51f86f5cac (bug 1431441)
2018-10-03 09:39:01 +03:00
Haik Aftandilian
70da961450 Bug 1431441 - Part 5 - Parameterize access to the windowserver in the Mac content sandbox policy r=Alex_Gaynor
Only allow access to "com.apple.windowserver.active" when the pref
"security.sandbox.content.mac.disconnect-windowserver" is set to true.

Depends on D6721

Differential Revision: https://phabricator.services.mozilla.com/D7357

--HG--
extra : moz-landing-system : lando
2018-10-02 19:43:06 +00:00
Haik Aftandilian
7977abcd65 Bug 1431441 - Part 4 - ASSERT the sandbox is already enabled r=Alex_Gaynor
When early initialization of the sandbox is enabled, assert that the sandbox has already been enabled in ContentProcess::Init().

Depends on D6720

Differential Revision: https://phabricator.services.mozilla.com/D6721

--HG--
extra : moz-landing-system : lando
2018-10-02 19:41:30 +00:00
Haik Aftandilian
ef9150c083 Bug 1431441 - Part 3 - Start the Mac content sandbox earlier r=Alex_Gaynor
Pass sandbox parameters to content processes on the command
line allowing for early sandbox startup. Limited to Nightly
until confirmed to be stable and ready to ride the trains.

Enable early sandbox startup by default on Nightly and use
pref "security.sandbox.content.mac.earlyinit" to disable
early startup for debugging purposes.

Once early startup is stable, the original sandbox startup
code can be removed.

Depends on D6719

Differential Revision: https://phabricator.services.mozilla.com/D6720

--HG--
extra : moz-landing-system : lando
2018-10-02 20:29:46 +00:00
Haik Aftandilian
a99a3fe58d Bug 1431441 - Part 2 - Remove rules for APP_BINARY_PATH and APP_DIR Mac sandbox parameters r=Alex_Gaynor
Simplify the content sandbox policy by removing APP_BINARY_PATH and APP_DIR Mac sandbox parameters and their associated rules in the policy. Keep APP_PATH which is a parent directory of APP_BINARY_PATH and APP_DIR.

Depends on D6717

Differential Revision: https://phabricator.services.mozilla.com/D6719

--HG--
extra : moz-landing-system : lando
2018-10-02 19:40:46 +00:00
Kris Maglione
74481e8af4 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : source : a03a61d6d724503c3b7c5e31fe32ced1f5d1c219
extra : intermediate-source : 5152af6ab3e399216ef6db8f060c257b2ffbd330
extra : histedit_source : ef06000344416e0919f536d5720fa979d2d29c66%2C4671676b613dc3e3ec762edf5d72a2ffbe6fca3f
2018-07-27 15:13:12 -07:00
Narcis Beleuzu
72f96acd7b Backed out 2 changesets (bug 1479035) for assertion failure: mEvents. CLOSED TREE
Backed out changeset 89a0c0874d40 (bug 1479035)
Backed out changeset 5152af6ab3e3 (bug 1479035)
2018-09-26 23:40:13 +03:00
Kris Maglione
81eb50cf31 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : rebase_source : fcf8fa50e748c4b54c3bb1997575d9ffd4cbaae1
extra : source : a03a61d6d724503c3b7c5e31fe32ced1f5d1c219
2018-07-27 15:13:12 -07:00
Noemi Erli
36cc0e5fa7 Backed out 2 changesets (bug 1479035) for build bustages bustages netwerk/cache2/target on CLOSED TREE
Backed out changeset 5f8706213610 (bug 1479035)
Backed out changeset a03a61d6d724 (bug 1479035)
2018-09-26 08:54:03 +03:00
Kris Maglione
a6edc4f204 Bug 1479035: Part 1 - Don't create event queues for stub nsThread wrappers. r=froydnj
Most of the times when we automatically create nsThread wrappers for threads
that don't already have them, we don't actually need the event targets, since
those threads don't run XPCOM event loops. Aside from wasting memory, actually
creating these event loops can lead to leaks if a thread tries to dispatch a
runnable to the queue which creates a reference cycle with the thread.

Not creating the event queues for threads that don't actually need them helps
avoid those foot guns, and also makes it easier to figure out which treads
actually run XPCOM event loops.

MozReview-Commit-ID: Arck4VQqdne

--HG--
extra : rebase_source : 02c5572b92ee48c11697d90941336e10c03d49cf
2018-07-27 15:13:12 -07:00
Haik Aftandilian
f2fa2012f9 Bug 1491940 - [Mac] Allow Adobe DRM content to play with the Mac Flash sandbox r=Alex_Gaynor
Add an whitelisted write-access path regex to the Flash plugin sandbox.

Differential Revision: https://phabricator.services.mozilla.com/D6679

--HG--
extra : moz-landing-system : lando
2018-09-24 17:22:49 +00:00
Jed Davis
2fcf5c7252 Bug 1489735 - Quietly deny sched_setaffinity in content process sandbox r=gcp
Differential Revision: https://phabricator.services.mozilla.com/D5908

--HG--
extra : moz-landing-system : lando
2018-09-17 16:43:52 +00:00
Landry Breuil
aa545e34c8 Bug 1457092 - Implement sandboxing on OpenBSD. r=gcp, r=jld
Add StartOpenBSDSandbox method calling pledge() syscall,
and use it where we're sandboxing processes.

The pledge subsets are coming from two new prefs:
- security.sandbox.pledge.content for the content process
- security.sandbox.pledge.main for the main process

--HG--
extra : rebase_source : 60da70e2d335755fda6126a6b7de7aad41eebb7e
2018-08-23 07:35:00 -04:00
Gian-Carlo Pascutto
ac0adb0b5e Bug 1480755 - Add support for new Mesa device probing. r=jld
MozReview-Commit-ID: CD9ATGHUOZ1

Differential Revision: https://phabricator.services.mozilla.com/D3910

--HG--
extra : moz-landing-system : lando
2018-08-22 01:52:44 +00:00
Haik Aftandilian
25e42d1fc7 Bug 1484051 - Limit Mac Flash sandbox file-access mds rules r=Alex_Gaynor 2018-08-17 15:05:47 -07:00
Jed Davis
c6eafa306d Bug 1480554 - Fix missing include in SandboxOpenedFiles.cpp. r=gcp 2018-08-16 09:15:56 -06:00
Jed Davis
5e630f7ccf Bug 1481978 - Change IPC CloseSuperfluousFds to prevent accidentally heap-allocating closures. r=glandium
Closures are nice but -- as pointed out in bug 1481978 comment #2 --
it's a footgun to take a std::function argument in a context where heap
allocation isn't safe.

Fortunately, non-capturing closures convert to C function pointers,
so a C-style interface with a void* context can still be relatively
ergonomic.
2018-08-15 19:08:40 -06:00
Haik Aftandilian
fd21ba0b31 Bug 1483058 - [Mac] Camera not accessible by Adobe Flash applets r=Alex_Gaynor
Allow access to services needed for the Flash plugin to access cameras.

Differential Revision: https://phabricator.services.mozilla.com/D3357

--HG--
extra : moz-landing-system : lando
2018-08-14 19:58:12 +00:00
Kris Maglione
25c94b46d8 Bug 1481021: Part 1 - Fix tests that rely on permissive COWs or SpecialPowers side-effects in frame script scopes. r=bz
Right now, a lot of test code relies on side-effects of SpecialPowers being
loaded into frame script globals. In particular:

- It forces permissive COWs from those scopes, which allows frame scripts to
  pass objects from those scopes to unprivileged content that they otherwise
  wouldn't.
- It imports a bunch of helper modules and WebIDL globals which would
  otherwise not be available.

Fortunately, this seems to only impact test code at this point. But there's a
real down-the-road risk of it impacting shipping code, which ends up working
in automation due to the side-effects of SpecialPowers, but failing in real
world use.

MozReview-Commit-ID: G27eSSOHymX

--HG--
extra : rebase_source : 1702e63fed719fc92def2bdbbb8a7c53572432db
extra : source : 41bedc526dd6ec6b7e8c7be1c832ac60c81d6263
2018-08-07 14:13:06 -07:00
Masatoshi Kimura
3b21b7868b Bug 1090497 - Re-enable warnings as errors on clang-cl. r=froydnj
--HG--
extra : rebase_source : c09366fb93e5b0f72abe1e99d3094e3d96a934fb
extra : intermediate-source : 5950c9d63c3b4fd63a25464a7b50944aaec7079f
extra : source : ca1b9a2bcc4381795f556fea2fb59066567c30f3
2018-07-31 22:10:07 +09:00
Jed Davis
09db14abce Bug 1439057 - Tighten /dev/shm access in Linux content sandbox policy. r=gcp
This patch uses the shared memory name prefixes introduced in bug 1447867
to prevent access to /dev/shm files of other applications or other
processes within the same browser instance.

When a shared memory implementation that doesn't use shm_open is available
(specifically, the memfd_create support to be added in bug 1440203),
/dev/shm access is completely denied.

MozReview-Commit-ID: L2ylG5KrXTU
2018-07-31 10:41:29 -06:00
Jed Davis
ec4764f25f Bug 1243108 - Work around Linux kernel bug causing broker responses to be dropped. r=gcp
MozReview-Commit-ID: LX2kEXybFGW

--HG--
extra : rebase_source : 922af6565786ec0eb4d041606d094b4a3fde739b
2018-07-19 18:20:03 -06:00
Robert Bartlensky
4859064649 Bug 1476340: Fix DEAD_STORE errors in security/sandbox/linux/*. r=gcp
MozReview-Commit-ID: 3jNPRWGb7rU

--HG--
extra : rebase_source : 0a335ce52dcaadd5ba7a2c81a523c5537336efd8
2018-07-17 18:30:09 +01:00
Haik Aftandilian
946187d684 Bug 1475722 - Mac Flash sandbox causes empty file upload dialogs on OS X 10.9, 10.10 r=Alex_Gaynor
On 10.9 and 10.10, grant global read access to the Flash sandbox.

Change Flash sandbox levels by adding a new level 1 that includes
global read access which will be the default on 10.9/10.10.
Level 2 is the new default for 10.11 and above with file read
access enabled by file dialog activity.

MozReview-Commit-ID: LvXhd6Vf7mo

--HG--
extra : rebase_source : 946f89937e5bb4506fd6bc8b2c050c86a8b29cc8
2018-07-17 17:30:44 -07:00
Haik Aftandilian
b670f9fea5 Bug 1471977 - Mac Flash sandbox causing World Cup playback issues on foxsports.com r=Alex_Gaynor
Pass the user cache dir as a parameter to the Flash sandbox profile.
Add services and paths to the Flash sandbox profile needed for TLS
and encrypted video playback.

MozReview-Commit-ID: 1szVXVVATFy

--HG--
extra : rebase_source : 04885bb5d8b9995559462d373199078b109bfdc5
2018-07-06 15:06:21 -07:00
Haik Aftandilian
70bdba7624 Bug 1475707 - [Mac] Flash sandbox on Nightly/Beta causes OS X 10.9 file upload dialog Flash plugin crash r=Alex_Gaynor
Add the com.apple.xpcd service to the Flash plugin sandbox for OS X 10.9 systems to avoid crashes when opening file dialogs.

MozReview-Commit-ID: A40Mov98Ddy

--HG--
extra : rebase_source : 3aa7471f239bd64d9e153e2e7076e99006358f1f
2018-07-13 12:58:40 -07:00
Aaron Klotz
fab8ec82c6 Bug 1460022: Part 9 - Update sandboxing code to work with revised DLL interceptor interface; r=bobowen 2018-06-27 11:51:29 -06:00
shindli
dd50d1646e Backed out 13 changesets (bug 1460022) for bustages in :/build/build/src/mozglue/tests/interceptor/TestDllInterceptor.cpp(113) on a CLOSED TREE
Backed out changeset b798c3689bbf (bug 1460022)
Backed out changeset c3b3b854affd (bug 1460022)
Backed out changeset ecb1b6fd3134 (bug 1460022)
Backed out changeset 91fed649dd5a (bug 1460022)
Backed out changeset be7032cddad2 (bug 1460022)
Backed out changeset d4a036b976e6 (bug 1460022)
Backed out changeset 5f3dfde41e38 (bug 1460022)
Backed out changeset a16486a6f685 (bug 1460022)
Backed out changeset 69eacc5c3ab8 (bug 1460022)
Backed out changeset 34aa7c29b31e (bug 1460022)
Backed out changeset 00b20c0a7637 (bug 1460022)
Backed out changeset b8e8aea4a01f (bug 1460022)
Backed out changeset 15822d9848d8 (bug 1460022)
2018-07-04 03:37:11 +03:00
Aaron Klotz
a65c046384 Bug 1460022: Part 9 - Update sandboxing code to work with revised DLL interceptor interface; r=bobowen 2018-06-27 11:51:29 -06:00
shindli
dcc88f33f9 Backed out 13 changesets (bug 1460022) for bustages in builds/worker/workspace/build/src/dom/plugins/ipc/FunctionHook.h💯24 on a CLOSED TREE
Backed out changeset 0734142a3f35 (bug 1460022)
Backed out changeset 18fbfa7ca685 (bug 1460022)
Backed out changeset 2df129bd5692 (bug 1460022)
Backed out changeset 02a7ed68933f (bug 1460022)
Backed out changeset 221137d1c2de (bug 1460022)
Backed out changeset 9cb0b7a15402 (bug 1460022)
Backed out changeset 18f8f85c0307 (bug 1460022)
Backed out changeset 867a1351efff (bug 1460022)
Backed out changeset 933e0b698f8e (bug 1460022)
Backed out changeset 09da660071e1 (bug 1460022)
Backed out changeset 8bb5142d3f53 (bug 1460022)
Backed out changeset 0ddf581bdaac (bug 1460022)
Backed out changeset 1cd5f9b4a6af (bug 1460022)
2018-07-04 02:49:24 +03:00
Aaron Klotz
ca2a5b7f5d Bug 1460022: Part 9 - Update sandboxing code to work with revised DLL interceptor interface; r=bobowen
--HG--
extra : rebase_source : 03daf9a71dbeb6e27699dad0030a8baf831cbb56
2018-06-27 11:51:29 -06:00
Tom Ritter
a1f3223838 Bug 1461421 Add OffsetOf patch to chromium patch directory r=bobowen
MozReview-Commit-ID: 3td0bc2PHzu

--HG--
extra : rebase_source : c87cca0e316a5daabcf3ba955675b90240907340
2018-06-08 12:28:26 -05:00
Tom Ritter
6b740111c1 Bug 1461421 Use OffsetOf to calculate the location of parameters_ rather than making assumptions about the parent class r=bobowen
MozReview-Commit-ID: D7REZiAIMpN

--HG--
extra : rebase_source : 5b320ee658589feec6d95b01448def7eb0a56b69
2018-06-07 13:08:27 -05:00
Haik Aftandilian
93adc15937 Bug 1469657 - Whitelist Extensis UTC fonts on 10.11 and Earlier r=Alex_Gaynor
Add whitelist rules to allow access to Extensis Universal Type Manager fonts
on 10.11 and earlier OS versions.

MozReview-Commit-ID: 3cPKlC1xCUW

--HG--
extra : rebase_source : 2f8b126cbc7dff2b4d660b6261c1a45d695e09d8
2018-06-19 11:39:41 -07:00
Andi-Bogdan Postelnicu
7fde349ad9 Bug 1453795 - Security/Sandbox - Initialize member fields in classes/ structures. r=haik 2018-06-14 12:26:21 +03:00
Jed Davis
b0a1468c01 Bug 1456911 - Rewrite the fd shuffling to be simpler & handle identity mappings correctly. r=froydnj
This replaces some old Chromium code that tries to minimally disentangle
an arbitrary file descriptor mapping with simpler algorithm, for several
reasons:

1. Do something appropriate when a file descriptor is mapped to the same
fd number in the child; currently they're ignored, which means they'll
be closed if they were close-on-exec.  This implementation duplicates
the fd twice in that case, which seems to be uncommon in practice; this
isn't maximally efficient but avoids special-case code.

2. Make this more generally applicable; the previous design is
specialized for arbitrary code running between fork and exec, but we
also want to use this on OS X with posix_spawn, which exposes a very
limited set of operations.

3. Avoid the use of C++ standard library iterators in async signal safe
code; the Chromium developers mention that this is a potential problem in
some debugging implementations that take locks.

4. In general the algorithm is simpler and should be more "obviously
correct"; more concretely, it should get complete coverage just by being
run normally in a debug build.

As a convenient side benefit, CloseSuperfluousFds now takes an arbitrary
predicate for which fds to leave open, which means it can be used in
other code that needs it without creating a fake fd mapping.

MozReview-Commit-ID: EoiRttrbrKL

--HG--
extra : rebase_source : 336e0ba9f56dc80f7347dc62617b4ad1efea7e7e
2018-04-25 17:44:08 -06:00
Sylvestre Ledru
a3ce8a59cd Bug 1464869 - Fix flake8/pep8 issue by hand in security/ r=fkiefer
MozReview-Commit-ID: ExDsMJ9KzJQ

--HG--
extra : rebase_source : e17c44e94c371d168f3c34ecbd640fb87cd2e863
2018-05-27 10:36:45 +02:00
Tom Ritter
2313bfe0d4 Bug 1457482 Add --enable-lto that turns on LTO r=glandium
MozReview-Commit-ID: DjICW7OKqzB

--HG--
extra : rebase_source : 92c766880845ec89305ef1e66ff13223421ac152
2018-04-13 15:55:39 -05:00
Miko Mynttinen
4c85ef17cc Bug 1465060 - Part 1: Fix warnings for std::move() use r=froydnj
MozReview-Commit-ID: HpdFXqQdIOO

--HG--
extra : rebase_source : 1e7eea4f2d4ec16ec0c559a8afb26976ddbf4d07
2018-06-01 17:59:07 +02:00
Emilio Cobos Álvarez
1e9c395548 Bug 1466168: Remove mozilla::Forward in favor of std::forward. r=froydnj
Same approach as the other bug, mostly replacing automatically by removing
'using mozilla::Forward;' and then:

  s/mozilla::Forward/std::forward/
  s/Forward</std::forward</

The only file that required manual fixup was TestTreeTraversal.cpp, which had
a class called TestNodeForward with template parameters :)

MozReview-Commit-ID: A88qFG5AccP
2018-06-02 09:33:26 +02:00
Emilio Cobos Álvarez
fffb25b74f Bug 1465585: Switch from mozilla::Move to std::move. r=froydnj
This was done automatically replacing:

  s/mozilla::Move/std::move/
  s/ Move(/ std::move(/
  s/(Move(/(std::move(/

Removing the 'using mozilla::Move;' lines.

And then with a few manual fixups, see the bug for the split series..

MozReview-Commit-ID: Jxze3adipUh
2018-06-01 10:45:27 +02:00
Haik Aftandilian
0dfa17d31a Bug 1463353 - contentSandboxRules does not explcitly list 'com.apple.fonts' mach service. r=Alex_Gaynor
Add font servers to sandbox policies instead of relying
on them to be registered before the sandbox is enabled.

MozReview-Commit-ID: IoVJhAqoEEW

--HG--
extra : rebase_source : 448cc9e556056c44cf76f79c126fbfe56e948e1e
2018-05-29 14:55:12 -07:00
Haik Aftandilian
fcb3b190fe Bug 1432567 - [Mac] Add a test that renders fonts from non-standard directories r=jfkthame
Adds a test to validate that content sandboxing is allowing content
processes to access fonts from non-standard locations on the
filesystem. The test copies the Fira Sans font to the root of the
home directory and renders a page that should use Fira Sans when it
is installed and registered with the OS. The test checks for the use
of the ".LastResort" font which is an indication of the the content
process failing to load the font.

MozReview-Commit-ID: GPWqHdF3vhG

--HG--
extra : rebase_source : c0ea283d496517812202d068c610bdcc0ece640d
2018-05-22 12:31:03 -07:00
Jed Davis
2788528721 Bug 1462640 - Allow content processes to mincore() individual pages. r=gcp
MozReview-Commit-ID: IclghYFyMPp

--HG--
extra : rebase_source : 5096ced288cfd120a6d28c87a7528851617a70e9
2018-05-18 17:36:47 -06:00
Tom Ritter
9800e813cf Bug 1462100 Add the 'cast to void*' MinGW sandbox patch to the chromium patchlist r=bobowen
MozReview-Commit-ID: 457xxFsnjTL

--HG--
extra : rebase_source : c1cb170c13cc408a4c1562e5bfd001bb9597a54c
2018-05-17 10:10:50 -05:00
Tom Ritter
e8c4e33bea Bug 1462100 Cast to void* to avoid conversion errors on MinGW, which does not do the automatic conversion like msvc r=bobowen
MozReview-Commit-ID: 8fO9Nu9gaxh

--HG--
extra : rebase_source : 896c58b8050304c6a47dcbd9f7744923a721fa69
2018-05-16 14:18:20 -05:00
Tom Ritter
af3c5e06a6 Bug 1460882 Disable SANDBOX_EXPORTS for the MinGW Build r=bobowen
MozReview-Commit-ID: 2muTxIYUx6F

--HG--
extra : rebase_source : c61e7de55319fd5eb156dd3c46ed4a8efe6dc42b
2018-05-11 08:16:13 -05:00
Haik Aftandilian
5e0cbf519a Bug 1460917 - Fonts not displaying with FontExplorer X fonts in Firefox 60 r=handyman
Add back font whitelist rules removed by the fix for bug 1393259
to workaround font sandbox extensions not being issued automatically
on OS X 10.11 and earlier.

MozReview-Commit-ID: 2hT0BzN3Ggq

--HG--
extra : rebase_source : 4fe9ce43eb7efe0c6a91c908c149126da6eb708e
2018-05-14 16:04:55 -07:00
Haik Aftandilian
7fb2183e0a Bug 1458553 - Return of Google Maps all black map with updated Nvidia web driver on Mac r=Alex_Gaynor
Update Mac sandbox rules to allow executable mappings from /Library/GPUBundles which is
used by the Nvidia downloadable "Web" driver.

MozReview-Commit-ID: L2nTP4YWdJJ

--HG--
extra : rebase_source : d8eefdd5a180db5d3ea8207d923e021420f2318e
2018-05-02 09:26:55 -07:00
Bob Owen
f299b6bfc7 Bug 1444699: Remove dynamic load and call for GetUserDefaultLocaleName. r=handyman
This was only required because it is not available on Windows XP, which is no
longer supported. Patch already landed upstream in chromium.
2018-04-24 09:21:51 +01:00
jld@mozilla.com
c7c75836c0 Backed out 2 changesets (bug 1439057, bug 1447867)
Backed out changeset baeab3bff807 (bug 1439057)
Backed out changeset 1a024d5ca77b (bug 1447867)

--HG--
extra : rebase_source : d39e4657b4117706a53bc42b7817424cf43f9148
2018-04-23 07:59:02 -06:00
Jed Davis
c5a7acdf32 Bug 1439057 - Tighten /dev/shm access in Linux content sandbox policy. r=froydnj,gcp
This patch uses the shared memory name prefixes introduced in bug 1447867
to prevent access to /dev/shm files of other applications or other
processes within the same browser instance.

When a shared memory implementation that doesn't use shm_open is available
(specifically, the memfd_create support to be added in bug 1440203),
/dev/shm access is completely denied.

MozReview-Commit-ID: L2ylG5KrXTU

--HG--
extra : rebase_source : ca1deece6117e843d691a13fff05bd0f97ec0408
2018-04-12 23:48:16 -06:00
Bob Owen
df78972f84 Bug 1453929: Enable handle verifier on 32-bit EARLY_BETA_OR_EARLIER. r=jimm 2018-04-14 20:24:07 +01:00
Sebastian Hengst
043061beb5 merge mozilla-central to mozilla-inbound 2018-04-13 16:05:58 +03:00
Sebastian Hengst
0819f35e51 Backed out 4 changesets (bug 525063) on request from Andi. a=backout
Backed out changeset 516c4fb1e4b8 (bug 525063)
Backed out changeset 6ff8aaef2866 (bug 525063)
Backed out changeset bf13e4103150 (bug 525063)
Backed out changeset d7d2f08e051c (bug 525063)
2018-04-13 16:01:28 +03:00
arthur.iakab
ac8dce248c Merge mozilla-central to mozilla-inbound. a=merge on a CLOSED TREE 2018-04-13 12:58:18 +03:00
Bob Owen
74c27857c7 Bug 1453639: Call InitializeHandleVerifier before other sandbox calls. r=jimm 2018-04-13 08:42:56 +01:00
Tristan Bourvon
a3a77c0312 Bug 525063 - Initialize uninitialized class attributes in m-c. r=ehsan 2018-04-10 21:11:02 +02:00
Jan Beich
4c4327e871 Bug 1452509 - Make -DMOZ_ALSA global and prune duplicate -DMOZ_PULSEAUDIO. r=froydnj
MozReview-Commit-ID: 6O0pkscXczw

--HG--
extra : rebase_source : 0d8dffa1f8e4942b3fe8832ad860409ec24784a2
2018-03-19 02:13:04 +00:00
Bob Owen
aaef814fdc Bug 1452090: Only enable handle verifier on 32-bit Nightly and debug builds. r=jimm
This also adds the ability to enable it using the environement variable
MOZ_ENABLE_HANDLE_VERIFIER.
2018-04-09 19:22:28 +01:00
Gian-Carlo Pascutto
f32916cd1e Bug 1434711 - WebGL causes a crash with the AMDGPU-PRO video driver. r=jld
Factor out the ATI-based driver detection code and use this to set
specific permissions needed by this driver. In passing, unnest some
of the SandboxBroker fallback paths, and make it properly report
the operation in all error paths.

MozReview-Commit-ID: FrRpicj5NF

--HG--
extra : rebase_source : 1410cdddcf1264dc1572f9b9b691f9d08a2061cf
2018-03-29 14:04:46 +02:00
Jed Davis
17bafad434 Bug 1450740 - Don't sandbox network namespace when X11 named sockets aren't accessible. r=gcp
MozReview-Commit-ID: KiL4GwMms3a

--HG--
extra : rebase_source : 08cfd2325d081eb95a4a69805077828bfbb521ac
2018-04-02 15:19:04 -06:00
David Parks
6a70261b2b Bug 1450773 - Remove restricting SIDs from NPAPI sandbox outside of nightly builds. r=bobowen
Restricting SIDs, which harden the sandbox, have caused some problems that we are investigating in nightly and that we don't want in beta/release.
2018-04-02 15:27:07 -07:00
Bob Owen
cfaaf3c336 Bug 1449480: Don't crash in opt builds when scoped_handle.cc CloseHandleWrapper fails. r=jimm
I'm not adding a patch to security/sandbox/chromium-shim/patches for this,
because we need to get this fixed ASAP, certainly before we take another update.
2018-03-28 16:07:15 +01:00
Bob Owen
039665fa5e Bug 1447019 Part 3: Use MITIGATION_WIN32K_DISABLE for GMP processes based on a pref. r=jimm 2018-03-27 14:09:32 +01:00
Bob Owen
41ce6696f9 Bug 1447019 Part 2: Move running from a network drive check into WinUtils. r=jimm 2018-03-27 14:09:32 +01:00
Bob Owen
cf86e40aa1 Bug 1445167 Part 2: Make LOG_FATAL messages in chromium sandbox code crash. r=jld 2018-03-20 10:45:31 +00:00
Bob Owen
af1e9f58c5 Bug 1445167 Part 1: Revert change to make USER_NON_ADMIN a blacklist. r=handyman
This is only used by default in the file content process now and we also have a
FILES_ALLOW_READONLY rule for all paths anyway.
2018-03-20 10:42:05 +00:00
Haik Aftandilian
331dda9367 Bug 1444291 - Part 3 - Add read access to the Mac Flash sandbox, support sandbox levels r=Alex_Gaynor
Replace the boolean pref "security.sandbox.mac.flash.enabled"
with "dom.ipc.plugins.sandbox-level.flash" to support sandbox
levels and be consistent with the Windows pref name.

Adds filesystem read access to the sandbox using sandbox extensions
granted by the file dialog machinery (level 1).

Add support for level 2 which blocks read access.

Allow the sandbox to be disabled with MOZ_DISABLE_NPAPI_SANDBOX.


MozReview-Commit-ID: 4rfobEoxQpF

--HG--
extra : rebase_source : 05dc54b46063967e959bc3fced21c61e5463de48
2018-03-15 20:23:19 -07:00
Haik Aftandilian
b8c5b2eae6 Bug 1444291 - Part 2 - Add additional sysctl access to the Mac Flash sandbox r=Alex_Gaynor
Adds additional sysctls that are used by the Flash plugin process and alphabetize the list.

MozReview-Commit-ID: 7CaPtaKe874

--HG--
extra : rebase_source : 909228ef9617029eaf7cb16565751150cd1c7404
2018-03-07 22:07:27 -08:00
Haik Aftandilian
09693ee75d Bug 1444291 - Part 1 - Reduce Mac Flash sandbox cache and temp dir permissions r=Alex_Gaynor
Remove access to DARWIN_USER_CACHE_DIR. Limit DARWIN_USER_TEMP_DIR
access to the FlashTmp subdirectory. Remove xattr read access to
~/Library/Caches/ and ~/Library/Preferences.

MozReview-Commit-ID: 9svk0BoxVXs

--HG--
extra : rebase_source : 5ea9c7ecc0189455eceb190fb300170d42d0b890
2018-03-15 17:33:12 -07:00
Coroiu Cristina
62bb56ad86 Backed out 3 changesets (bug 1444291) for bustage at build/src/dom/plugins/ipc/PluginProcessChild.cpp
Backed out changeset 48a9c2131347 (bug 1444291)
Backed out changeset dfc31b6c9f53 (bug 1444291)
Backed out changeset 8ee3e65465ed (bug 1444291)
2018-03-16 03:07:35 +02:00
Haik Aftandilian
3aaa8d9f78 Bug 1444291 - Part 3 - Add read access to the Mac Flash sandbox, support sandbox levels r=Alex_Gaynor
Replace the boolean pref "security.sandbox.mac.flash.enabled"
with "dom.ipc.plugins.sandbox-level.flash" to support sandbox
levels and be consistent with the Windows pref name.

Adds filesystem read access to the sandbox using sandbox extensions
granted by the file dialog machinery (level 1).

Add support for level 2 which blocks read access.

Allow the sandbox to be disabled with MOZ_DISABLE_NPAPI_SANDBOX.


MozReview-Commit-ID: 4rfobEoxQpF

--HG--
extra : rebase_source : 87f2f00867c4522ae3102abbc44fd05db63c7ec7
2018-03-13 15:38:11 -07:00
Haik Aftandilian
d1fbc6bb50 Bug 1444291 - Part 2 - Add additional sysctl access to the Mac Flash sandbox r=Alex_Gaynor
Adds additional sysctls that are used by the Flash plugin process and alphabetize the list.

MozReview-Commit-ID: 7CaPtaKe874

--HG--
extra : rebase_source : 078697987ac7fec77c75953035b924422fc93066
2018-03-07 22:07:27 -08:00
Haik Aftandilian
018807a65d Bug 1444291 - Part 1 - Reduce Mac Flash sandbox cache and temp dir permissions r=Alex_Gaynor
Remove access to DARWIN_USER_CACHE_DIR. Limit DARWIN_USER_TEMP_DIR
access to the FlashTmp subdirectory. Remove xattr read access to
~/Library/Caches/ and ~/Library/Preferences.

MozReview-Commit-ID: 9svk0BoxVXs

--HG--
extra : rebase_source : 669c4fa446c9cab6b32cf60091e91eae2d08625f
2018-03-15 17:33:12 -07:00
Andreea Pavel
46575fad3b Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-15 00:10:23 +02:00
Bob Owen
f2f76a9b94 Bug 1445614: Only warn when SetAlternateDesktop fails. r=jimm 2018-03-14 18:39:36 +00:00
Jed Davis
0b5eeab7a5 Bug 1445003 - Detect RenderDoc and adjust the sandbox policy so it can work. r=gcp
RenderDoc, a graphics debugging tool, uses a preload library that
creates a listening socket (Internet-domain) early in startup and
accepts connections from the frontend.  If it's detected (via env vars),
we allow accept/accept4 (but not socket/bind/listen), and remain in
the parent process's network namespace so that other processes can
connect to the socket.

This doesn't change the sandbox policy if not running under RenderDoc.

MozReview-Commit-ID: 964RW4BFh4u

--HG--
extra : rebase_source : d4a954e68431d84fa2e0edea4171421a948794af
2018-03-12 20:21:08 -06:00
Gian-Carlo Pascutto
4fb9bf8576 Bug 1416016 - Resolve symlinks in the file broker as a last resort. r=jld
MozReview-Commit-ID: B7OMyARk9u8

--HG--
extra : rebase_source : 1106c8f877f748a2ef7e6af3b8e6965a3cf67e33
2018-03-09 21:14:39 +01:00
Jed Davis
6c8bcd4625 Bug 1440206 - Allow brokered access to a subset of connect() in the Linux content sandbox. r=gcp
This is to support WebGL with hybrid graphics drivers that connect to
a secondary X server for GL (Primus and VirtualGL), without allowing
access to arbitrary sockets.  In addition to local X11 connections,
Primus needs to connect to the Bumblebee daemon (otherwise it will exit
the calling process).

The broker support is limited to AF_UNIX, to non-datagram sockets (see
bug 1066750), and to pathname addresses.  Abstract addresses could
theoretically be handled but there isn't currently a compelling reason
to, and the broker very much assumes it's dealing with a C-style string
referring to a filesystem path and not an arbitrary byte sequence
(including NULs).

At a higher level: If the GPU X server is remote then it won't work,
but it won't work anyway because WebGL requires features that aren't
supported by indirect GLX.  If the GPU X server is local but the browser
is inside a chroot, it will fail to connect unless /tmp/.X11-unix is
bind-mounted into the chroot; hopefully this use case is not common.

MozReview-Commit-ID: IvI2jYDRZZ2
2018-03-09 19:31:23 -07:00
Jed Davis
60310ac5ad Bug 1434392 - Don't preload libmozsandbox in grandchild processes, only the sandboxed children themselves. r=gcp
--HG--
extra : rebase_source : a2c784640c65e0e476fc6ccf8639581462902c86
2018-03-07 18:55:20 -07:00
Gian-Carlo Pascutto
dadfe06714 Bug 1438394 - Do SysV IPC check before bailing out early. r=jld
The SandboxLaunchPrepare currently bails out early if it detects a
lack of user namespaces. Hoist the check for drivers needing SysV
IPC up so it's done before that early exit, and the required env
variables get correctly set.

With this we no longer fail with a SIGSYS sandbox error, though
in a debug build we still crash because many assumptions in the
graphics stack get broken when that fails to initialize the driver
for WebGL.

MozReview-Commit-ID: 8n3Hx6VSjTF

--HG--
extra : rebase_source : 99bf2d25a7435b0eb95f186a00cc7723a196be4c
2018-03-07 19:05:00 +01:00
Dorel Luca
3ccafa2b66 Merge mozilla-inbound to mozilla-central. a=merge 2018-03-02 00:09:29 +02:00
Sebastian Hengst
118e03a936 merge mozilla-central to mozilla-inbound 2018-03-01 20:32:20 +02:00
Masatoshi Kimura
b1b043af08 Bug 1442266 - Stop including unnecessary <iostream>. r=froydnj
MozReview-Commit-ID: B0JDqyBanFE

--HG--
extra : rebase_source : dec1e2678083e3fb2b9a6b89322d1fa747ed6d4a
2018-03-01 23:07:56 +09:00
Bob Owen
8efbee5948 Bug 1441801 Part 2: Fix line endings in sandboxBroker.cpp. r=jimm 2018-03-01 14:37:26 +00:00
Bob Owen
be5a4dadac Bug 1441801 Part 1: Stop using the chromium sandbox DLL blocking mechanism on Nightly. r=jimm 2018-03-01 14:37:25 +00:00
Jed Davis
6d88e1e82d Bug 1438391 - Detect VirtualGL and weaken the sandbox enough for it to work. r=gcp
MozReview-Commit-ID: BXmm8JSfkeI

--HG--
extra : rebase_source : 7e56f39df23fa4cc2ad0e38702f8ad6353d74e69
2018-02-22 19:14:41 -07:00
Jed Davis
61d0766fcf Bug 1438401 - Quietly fail shmget() in sandboxed content processes. r=gcp
The X11 symbol interposition isn't enough, possibly because Cairo can
also use XCB.  Interposing XCB is more difficult because the API exposes
more protocol details.  Instead, just allow shmget to be called and
fail; this will tell Cairo that it can't use SysV IPC with the X server,
which is what we want.

MozReview-Commit-ID: 5y9tE7UXMTE

--HG--
extra : rebase_source : bb1e81116742a299bc4e412062327e69032ab3b3
2018-02-27 21:30:08 -07:00
Jed Davis
9bdbd2d99f Bug 1438389 - Quietly disallow chown() in sandboxed content processes. r=gcp
Also covers fchownat() and attempts to be ready for newer archs like ARM64.

Bonus fix: extend bug 1354731 (mknod) fix to cover mknodat so this part
of the policy isn't glaringly inconsistent about "at" syscalls.

Tested locally by attaching gdb and injecting syscalls.

MozReview-Commit-ID: CCOk0jZVoG4

--HG--
extra : rebase_source : 1d0cafd9d91586eaec0233ff15b3bbb1ef7485f0
2018-02-15 16:10:00 -07:00
Narcis Beleuzu
2d9816273c Merge inbound to mozilla-central. a=merge 2018-02-16 11:49:59 +02:00
David Parks
9a797c5ce2 Bug 1415160: Part 2 - Add mitigations to plugin process if not running from network drive r=bobowen
Adds MITIGATION_IMAGE_LOAD_NO_REMOTE and MITIGATION_IMAGE_LOAD_NO_LOW_LABEL to the plugin process if we aren't running from a networked drive.  The same condition applies to these mitigations in the content process.

--HG--
extra : rebase_source : b61f91f3e56f6b4930a03331b7791a9173857518
2017-12-21 12:36:02 -08:00
David Parks
90d62139c0 Bug 1415160: Part 1 - Enable new NPAPI Windows Process Mitigations; r=bobowen
Enables new process mitigations that have been included from Chromium upstream.

--HG--
extra : rebase_source : 8997bef9c6a6c660b39e68ebfabf90f4de162bca
2017-12-20 22:58:26 -08:00
Haik Aftandilian
c90be35636 Bug 1436566 - [Mac] Land disabled-by-default sandboxing for the Flash NPAPI plugin process. r=Alex_Gaynor,jimm
MozReview-Commit-ID: Es0GbMLKvH5

--HG--
extra : rebase_source : 991f20ac25735508d790947991f59214fb06e54f
2018-02-12 15:46:31 -08:00
Alex Gaynor
106fa9d993 Bug 1405088 - Part 1 - remove file-write permissions from macOS content temporary directory; r=haik
With this change, the macOS content sandbox has no ability to create files
anywhere on disk (in release builds). If the content process needs a file to
write to, it needs to obtain a file descriptor from the parent process.

MozReview-Commit-ID: 7LoG1PW0UDR

--HG--
extra : rebase_source : 4ac0a7f187d45c9b6c0f8a658edfdae0509054ac
2017-10-02 10:48:01 -04:00
Alex Gaynor
0d04153faf Bug 1407693 - Part 1 - Expose method for sharing a HANDLE to a child process in the sandboxing API; r=bobowen
MozReview-Commit-ID: 3LBCzPS6Mzg

--HG--
extra : rebase_source : 7e1ea157eeea5810ad21d781e93b7046aebf2bd6
2017-11-27 14:34:48 -06:00
Jed Davis
f57faf8137 Bug 1436882 - Fix termination signal when clone()ing child processes. r=gcp
This fixes a mistake in bug 1401062: the termination signal was omitted,
so it's 0, and if it isn't exactly SIGCHLD, then a tracer/debugger will
receive PTRACE_EVENT_CLONE rather than PTRACE_EVENT_FORK.  This causes
GDB to see the child process as a thread instead of a separate process,
and it becomes very confused after the process calls execve().

MozReview-Commit-ID: Baf2RFHVWRU

--HG--
extra : rebase_source : 50839967fc766bb9db123fe1af99a88495f8421b
2018-02-08 17:30:03 -07:00
Jed Davis
927e70c7a5 Bug 1425274 - Filter socketpair() in content sandbox on 32-bit x86 with new-enough kernels. r=gcp
This replaces the globals for whether socket calls (and ipc(2) calls, but
we never used that) have real arguments with a parameter, which in hindsight
should have been done in bug 1273852, which is when we started handling
both socketcall(2) and separate socket calls in the same policy.  This
allows handling the two cases differently.

MozReview-Commit-ID: 1pfckmCpJlW

--HG--
extra : rebase_source : 4b8459f01e8748fea95cbcb6eeb689f01417ca5b
2018-01-29 17:36:06 -07:00
Jed Davis
4be220d5f3 Bug 1376910 - Remove SysV IPC access from Linux content sandbox when possible. r=gcp
There are a few things that use SysV IPC, which we discovered the last
time we tried to do this, which need to be accomodated:

1. The ALSA dmix plugin; if the build has ALSA support (off by default)
and if audio remoting is disabled, SysV IPC is allowed.

2. ATI/AMD's old proprietary graphics driver (fglrx), which is obsolete
and doesn't support newer hardware, but still has users; if it's
detected, SysV IPC is allowed.

3. Graphics libraries trying to use the MIT-SHM extension; this is
already turned off for other reasons (see bug 1271100), but that shim
seems to not load early enough in some cases, so it's copied into
libmozsandbox, which is preloaded before anything else in LD_PRELOAD.

Also, msgget is now blocked in all cases; the only case it was known
to be used involved ESET antivirus, which is now handled specially
(bug 1362601).  In any case, the seccomp-bpf policy has never allowed
actually *using* message queues, so creating them is not very useful.

MozReview-Commit-ID: 5bOOQcXFd9U

--HG--
extra : rebase_source : ea79c0a7e31f58f056be15b551c57dde974dfae2
2018-01-26 19:43:10 -07:00
Andreea Pavel
93f2f80c9d Backed out 2 changesets (bug 1407693) for windows mingw32 bustages at /builds/worker/workspace/build/src/ipc/glue/GeckoChildProcessHost.cpp:1032 on a CLOSED TREE
Backed out changeset 9c3346021c21 (bug 1407693)
Backed out changeset f18e1e557cf6 (bug 1407693)
2018-02-07 21:42:47 +02:00
Alex Gaynor
fe879d087a Bug 1407693 - Part 1 - Expose method for sharing a HANDLE to a child process in the sandboxing API; r=bobowen
MozReview-Commit-ID: 3LBCzPS6Mzg

--HG--
extra : rebase_source : 70b31bde82bfd3721b75cc9dc7171b2c1efc5f9f
2017-11-27 14:34:48 -06:00
David Parks
312f33b8c5 Bug 1426733: Use restricting SIDs in Windows NPAPI process r=bobowen
Allow NPAPI sandbox to use restricting SIDs.

--HG--
extra : rebase_source : be53cfa3b05bd6d0f5b24b8f4f0b41e623d40e9a
2017-12-20 21:35:26 -08:00
Bob Owen
92db53b861 Bug 1432381: Replace sidestep resolvers with stubs as they are not actually used. r=aklotz
These cause compilation issues for MinGW.
It looks like these are a legacy from the original sandbox code before it was
integrated into chromium.
2018-02-06 08:52:26 +00:00
Boris Zbarsky
12e9f78050 Bug 1435483 part 16. Switch to using dom::Exception, not nsIException, in C++ code. r=qdot
nsIException is builtinclass in idl, so whatever code we had to handle
non-dom::Exception nsIExceptions is dead code.

MozReview-Commit-ID: 6VnqDWt0041
2018-02-05 16:34:05 -05:00
Boris Zbarsky
c8bd8682bf Bug 1435483 part 10. Add infallible "asyncCaller" and "caller" getters on nsIStackFrame. r=qdot
MozReview-Commit-ID: 8pdMDFHWlVt
2018-02-05 16:34:05 -05:00
Boris Zbarsky
b7eaf4b6ae Bug 1435483 part 9. Add an infallible "name" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: ADxO2A8nkel
2018-02-05 16:34:05 -05:00
Boris Zbarsky
2c00c8c971 Bug 1435483 part 6. Add an infallible "lineNumber" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: 7aYg9kJhiab
2018-02-05 16:34:04 -05:00
Boris Zbarsky
02f7baafc0 Bug 1435483 part 5. Add an infallible "filename" getter on nsIStackFrame. r=qdot
MozReview-Commit-ID: D3uuehuDqOB
2018-02-05 16:34:04 -05:00
Gian-Carlo Pascutto
ff91a17fb3 Bug 1386404 - Use the full tmpdir finding logic. r=jld
MozReview-Commit-ID: BDBslEZsctJ

--HG--
extra : rebase_source : 6814c3fc5183083b38bfe651f6c7e9d19965f785
extra : histedit_source : fb71245f51fefcc7c221f951316c16583239aefc%2C71d59492798b368e5d09f295f5e74bb32790c75b
2018-01-30 21:31:07 +01:00
Gian-Carlo Pascutto
adc2daa77b Bug 1386404 - Whitelist the prefix used by the XPCOM leak logs. r=haik
MozReview-Commit-ID: HI68lvyJIPQ

--HG--
extra : rebase_source : b68015624aa02c911cd4361b8ea177ae585a5ef5
extra : histedit_source : ca88e3de7f3f7d76e82e259e03145d2f843d0a1b
2017-11-03 13:18:56 +01:00
Gian-Carlo Pascutto
220379341a Bug 1386404 - Only do the tmp remapping if needed. r=jld
This helps with getting the tests that are running out of /tmp
to pass, who get confused if their paths change underneath them.

It's also a bit faster.

MozReview-Commit-ID: CWtngVNhA0t

--HG--
extra : rebase_source : 1be7a99cd3640d15ddecd1c050d19d1b30e5202d
extra : histedit_source : 5787bfe610504356a04819039469083adf2ce77c
2017-10-26 18:02:10 +02:00
Gian-Carlo Pascutto
7fd8a36d1c Bug 1386404 - Intercept access to /tmp and rewrite to content process tempdir. r=jld
MozReview-Commit-ID: 2h9hw6opYof

--HG--
extra : rebase_source : 73c677be84d62ed958d07b0aca0947dd0e9448c7
extra : histedit_source : 499d483f58372b7b06a36da3fdf0ea3afc12feeb
2017-10-26 17:50:49 +02:00
Gian-Carlo Pascutto
5ce7639e7d Bug 1386404 - Enable access to the entire chrome dir from content. r=jld
This may be required if people have @import in their userContent.css, and
in any case our tests check for this.

MozReview-Commit-ID: 8uJcWiC2rli

--HG--
extra : rebase_source : a93dfc2c62d3ac35dece87e4b4596cde761de207
extra : histedit_source : 455e6a79527226f398a861a72c1cfdef2c1761df
2017-10-26 18:57:03 +02:00