-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: syncthing/syncthing
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v2.0.15
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: syncthing/syncthing
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v2.0.16
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 11 commits
- 34 files changed
- 4 contributors
Commits on Feb 12, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 75dd940 - Browse repository at this point
Copy the full SHA 75dd940View commit details
Commits on Feb 16, 2026
-
Configuration menu - View commit details
-
Copy full SHA for ddafc5f - Browse repository at this point
Copy the full SHA ddafc5fView commit details
Commits on Feb 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 76db7c6 - Browse repository at this point
Copy the full SHA 76db7c6View commit details
Commits on Mar 2, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 55d89d0 - Browse repository at this point
Copy the full SHA 55d89d0View commit details
Commits on Mar 3, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 9c7e34b - Browse repository at this point
Copy the full SHA 9c7e34bView commit details
Commits on Mar 4, 2026
-
build(deps): update dependencies (#10588)
Signed-off-by: Jakob Borg <jakob@kastelo.net>
Configuration menu - View commit details
-
Copy full SHA for 8c7c413 - Browse repository at this point
Copy the full SHA 8c7c413View commit details
Commits on Mar 7, 2026
-
Configuration menu - View commit details
-
Copy full SHA for fd12982 - Browse repository at this point
Copy the full SHA fd12982View commit details
Commits on Mar 9, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 55d3b7c - Browse repository at this point
Copy the full SHA 55d3b7cView commit details
Commits on Mar 11, 2026
-
fix(systemd): support overrides for syncOwnership (#10602)
Syncthing docs in https://docs.syncthing.net/users/autostart.html#permissions tell the user to set `AmbientCapabilities=CAP_CHOWN CAP_FOWNER` if the user wishes to use the `syncOwnership` option. #10421 broke `syncOwnership` for users that followed that advice because the PR introduced `CapabilityBoundingSet=` which cancels out any additional capabilities granted with `AmbientCapabilities`. (`AmbientCapabilities` _adds_ capabilities; `CapabilityBoundingSet` _limits_ maximum capabilities to the specified set. Setting `CapabilityBoundingSet` to an empty list prevents any capabilities from being acquired in any way.) This PR fixes the breakage by explicitly setting CapabilityBoundingSet=CAP_CHOWN CAP_FOWNER This does _not_ grant any additional access rights to syncthing if the user is not explicitly setting `AmbientCapabilities` as well, but it does loosen the sandbox _a bit_. An attacker compromising the syncthing process could now more easily expand their access to include CAP_CHOWN/CAP_FOWNER even if the user is not setting `AmbientCapabilities`. Signed-off-by: Val Markovic <val@markovic.io>
Configuration menu - View commit details
-
Copy full SHA for c4ff02d - Browse repository at this point
Copy the full SHA c4ff02dView commit details
Commits on Mar 13, 2026
-
fix(systemd): add back chown allowed syscalls (#10605)
fix(systemd): Add back chown allowed syscalls IFF the user enables the `syncOwnership` feature AND sets `AmbientCapabilities=CAP_CHOWN CAP_FOWNER` as the docs in https://docs.syncthing.net/users/autostart.html#permissions state, THEN syncthing needs to use the `chown` syscall. PR #10421 added a comprehensive sandbox that breaks `syncOwnership`. In PR #10602 we fixed one part, which is expanding the default `CapabilityBoundingSet` (see the PR for details). But there's a very subtle bug that this PR fixes. PR #10421 sets the following properties: SystemCallFilter=@System-service SystemCallFilter=~@PRIVILEGED io_uring_enter io_uring_register io_uring_setup (Systemd merges `SystemCallFilter` values; we had to set the property twice because to negate syscalls, the whole list has to start with `~`.) The goal was to allow all syscalls in the `@system-service` set, BUT disallow any `@privileged` syscalls and the `io_uring*` syscalls. But the sets are not disjoint; `chown` is in both `@system-service` and in `@privileged`, so it is removed from the allow list by the second property value. This property is also parsed in a very peculiar way. From systemd docs: > If you specify both types of this option (i.e. allow-listing and > deny-listing), the first encountered will take precedence and will > dictate the default action (termination or approval of a system call). > Then the next occurrences of this option will add or delete the listed > system calls from the set of the filtered system calls, depending of its > type and the default action. (For example, if you have started with an > allow list rule for read() and write(), and right after it add a deny > list rule for write(), then write() will be removed from the set.) Not only does the order of `SystemCallFilter` properties matter (later ones can undo effects of prior ones), but the _type_ of the _first_ property sets the overall behavior of the syscall filter: if the first `SystemCallFilter` value is an allow list, then all syscalls that are not specified are disallowed by default (and reverse if the first value is a deny list). Of course, this is completely different from how other allow/deny lists are implemented in systemd; for example, `IPAddress[Allow|Deny]` properties don't work like this at all. >:( Since this complexity has bit us once, we're removing the additional deny list of syscalls and sticking with just `SystemCallFilter=@system-service`. This leaves some privileged syscalls in the allow list. Other options would require entering the "deny list by default" mode and deny lists are less secure than allow lists in general because they have to be maintained (the kernel always adds new syscalls). The rest of the sandbox (capability bounds) should be sufficient. Fixes #10603 Signed-off-by: Val Markovic <val@markovic.io>
Configuration menu - View commit details
-
Copy full SHA for 077a7a0 - Browse repository at this point
Copy the full SHA 077a7a0View commit details -
chore(sqlite): reduce max open connections, keep them open permanently (
Configuration menu - View commit details
-
Copy full SHA for 9ffce6e - Browse repository at this point
Copy the full SHA 9ffce6eView commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v2.0.15...v2.0.16