summaryrefslogtreecommitdiff
path: root/src/common/sandbox.c
AgeCommit message (Collapse)Author
2018-02-01Revert "Change the sandbox behavior on all failed opens() to EACCES"Nick Mathewson
This reverts commit 9a06282546418b2e9d21559d4853bcf124b953f4. It appears that I misunderstood how the seccomp2 filter rules interact. It appears that `SCMP_ACT_ERRNO()` always takes precedence over `SCMP_ACT_ALLOW()` -- I had thought instead that earlier rules would override later ones. But this change caused bug 25115 (not in any released Tor).
2018-01-26Change the sandbox behavior on all failed opens() to EACCESNick Mathewson
Previously, most disallowed open(O_RDONLY) attempts would EACCES, but others would fail with a crash.
2017-12-12Merge branch 'maint-0.3.2'Nick Mathewson
2017-12-12Make sandbox.c compile when libseccomp-dev is installed on arm64Nick Mathewson
Fixes ticket 24424. Patch from weasel.
2017-12-11Merge branch 'maint-0.3.2'Nick Mathewson
2017-12-11Stop checking for sandbox:new_element() failures: it can't fail.Nick Mathewson
(It can't fail because the tor_malloc*() family of functions can never return NULL) Found with STACK
2017-12-08Merge branch 'macro_free_v2_squashed'Nick Mathewson
2017-12-08Convert remaining function (mostly static) to new free styleNick Mathewson
2017-11-21re-run ./scripts/maint/annotate_ifdef_directivesNick Mathewson
2017-11-20Merge branch 'maint-0.3.2'Nick Mathewson
2017-11-20Merge remote-tracking branches 'public/ticket24315_029' and ↵Nick Mathewson
'public/bug24198_029' into maint-0.3.2
2017-11-16Check the libc version to decide whether to allow openat.Nick Mathewson
2017-11-16Make our seccomp2 sandbox handle Glibc 2.26Nick Mathewson
There are three changes here: * We need to allow epoll_pwait. * We need to allow PF_NETLINK sockets to be opened with SOCK_CLOEXEC. * We need to use openat() instead of open(). Note that this fix is not complete, since the openat() change is turned off. The next commit will make the openat() change happen when we're running glibc 2.26 or later. Fix for 24315.
2017-11-16Permit kill(pid, 0) in the seccomp2 sandbox.Nick Mathewson
We don't want to allow general signals to be sent, but there's no problem sending a kill(0) to probe whether a process is there. Fixes bug 24198; bugfix on 0.2.5.1-alpha when the seccomp2 sandbox was introduced.
2017-10-31Merge branch 'fix-torrcd-sandbox-22605v2'Nick Mathewson
2017-10-19Comment-only change: annotate exit() calls.Nick Mathewson
Sometimes when we call exit(), it's because the process is completely hopeless: openssl has a broken AES-CTR implementation, or the clock is in the 1960s, or something like that. But sometimes, we should return cleanly from tor_main() instead, so that embedders can keep embedding us and start another Tor process. I've gone through all the exit() and _exit() calls to annotate them with "exit ok" or "XXXX bad exit" -- the next step will be to fix the bad exit()s. First step towards 23848.
2017-09-15Run our #else/#endif annotator on our source code.Nick Mathewson
2017-09-15sched: Add sandbox support for KISTDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-06Better error on failure to load seccomp2 sandboxNick Mathewson
There are two reasons this is likeliest to happen -- no kernel support, and some bug in Tor. We'll ask people to check the former before they report. Closes 23090.
2017-08-30Adds files included by torrc and defaults to sandbox filter #22605Daniel Pinto
2017-08-09Remove the #if 0ed code that was supposed to let the sandbox allow execNick Mathewson
2017-07-27Merge branch 'maint-0.3.0' into maint-0.3.1Nick Mathewson
2017-07-27Merge branch 'maint-0.3.1'Nick Mathewson
2017-07-27Merge branch 'maint-0.2.9' into maint-0.3.0Nick Mathewson
2017-07-23fix whitespace issueRoger Dingledine
2017-07-05Allow setsockopt(IPV6_V6ONLY) in sandbox.Nick Mathewson
Fixes bug 20247. We started setting V6ONLY in 0.2.3.13-alpha and added the sandbox on 0.2.5.1-alpha.
2017-07-05Use the proper syscall in sandbox error messagescypherpunks
Fixes #22750.
2017-06-28Fix crash in LZMA module when the Sandbox is enabled.Alexander Færøy
This patch fixes a crash in our LZMA module where liblzma will allocate slightly more data than it is allowed to by its limit, which leads to a crash. See: https://bugs.torproject.org/22751
2017-06-19Merge branch 'maint-0.3.0' into maint-0.3.1Nick Mathewson
2017-06-19Merge branch 'maint-0.2.9' into maint-0.3.0Nick Mathewson
2017-06-16Permit the fchmod system call.Nick Mathewson
Fixes bug 22516; bugfix on 0.2.5.4-alpha.
2017-05-08Merge branch 'maint-0.3.0'Nick Mathewson
2017-05-08Merge branch 'maint-0.2.9' into maint-0.3.0Nick Mathewson
2017-04-28Increase MALLOC_MP_LIM to 16MBNick Mathewson
Increase the maximum allowed size passed to mprotect(PROT_WRITE) from 1MB to 16MB. This was necessary with the glibc allocator in order to allow worker threads to allocate more memory -- which in turn is necessary because of our new use of worker threads for compression. Closes ticket #22096. Found while working on #21648.
2017-04-26Add getpid() to the seccomp2 sandbox.Nick Mathewson
We hadn't needed this before, because most getpid() callers on Linux were looking at the vDSO version of getpid(). I don't know why at least one version of OpenSSL seems to be ignoring the vDSO, but this change should fix it. Fixes bug 21943; bugfix on 0.2.5.1-alpha when the sandbox was introduced.
2017-03-15Run the copyright update script.Nick Mathewson
2016-12-18fix typos and trivial syntax problemsRoger Dingledine
2016-12-07Merge branch 'bug20710_025' into maint-0.2.9Nick Mathewson
2016-12-01Fix major errors in freeing getaddrinfo sandbox cacheNick Mathewson
Patch from cypherpunks. Fixes bug 20710; bugfix on 0.2.5.5-alpha.
2016-09-05For me, asan/ubsan require more syscalls.Nick Mathewson
Permit sched_yield() and sigaltstack() in the sandbox. Closes ticket 20063
2016-08-23Fix some comments in sandbox.cNick Mathewson
Closes ticket 19942; patch from "cypherpunks"
2016-07-21Merge branch 'maint-0.2.8'Nick Mathewson
2016-07-21Coverity hates it when we do "E1 ? E2 : E2".Nick Mathewson
It says, 'Incorrect expression (IDENTICAL_BRANCHES)' Fix for CID 1364127. Not in any released Tor.
2016-07-17Merge branch 'maint-0.2.8'Nick Mathewson
2016-07-17Merge remote-tracking branch 'weasel/bug19660' into maint-0.2.8Nick Mathewson
2016-07-13Merge branch 'maint-0.2.8'Nick Mathewson
2016-07-13Merge remote-tracking branch 'Jigsaw52/seccomp-fix-18397' into maint-0.2.8Nick Mathewson
2016-07-11Add (SOCK_DGRAM, IPPROTO_UDP) sockets to the sandboxing whitelistPeter Palfrader
If we did not find a non-private IPaddress by iterating over interfaces, we would try to get one via get_interface_address6_via_udp_socket_hack(). This opens a datagram socket with IPPROTO_UDP. Previously all our datagram sockets (via libevent) used IPPROTO_IP, so we did not have that in the sandboxing whitelist. Add (SOCK_DGRAM, IPPROTO_UDP) sockets to the sandboxing whitelist. Fixes bug 19660.
2016-07-09Adds missing syscalls to seccomp filter.Daniel Pinto
Fixes #18397 which prevented tor starting with Sandbox 1.
2016-07-05Grammar.Nick Mathewson
I grepped and hand-inspected the "it's" instances, to see if any were supposed to be possessive. While doing that, I found a "the the", so I grepped to see if there were any more.