Commit 00b06da
committed
signal: Add SA_IMMUTABLE to ensure forced siganls do not get changed
As Andy pointed out that there are races between
force_sig_info_to_task and sigaction[1] when force_sig_info_task. As
Kees discovered[2] ptrace is also able to change these signals.
In the case of seeccomp killing a process with a signal it is a
security violation to allow the signal to be caught or manipulated.
Solve this problem by introducing a new flag SA_IMMUTABLE that
prevents sigaction and ptrace from modifying these forced signals.
This flag is carefully made kernel internal so that no new ABI is
introduced.
Longer term I think this can be solved by guaranteeing short circuit
delivery of signals in this case. Unfortunately reliable and
guaranteed short circuit delivery of these signals is still a ways off
from being implemented, tested, and merged. So I have implemented a much
simpler alternative for now.
[1] https://lkml.kernel.org/r/[email protected]
[2] https://lkml.kernel.org/r/202110281136.5CE65399A7@keescook
Cc: [email protected]
Fixes: 307d522 ("signal/seccomp: Refactor seccomp signal and coredump generation")
Tested-by: Andrea Righi <[email protected]>
Tested-by: Kees Cook <[email protected]>
Signed-off-by: "Eric W. Biederman" <[email protected]>1 parent e21294a commit 00b06da
File tree
3 files changed
+11
-1
lines changed- include
- linux
- uapi/asm-generic
- kernel
3 files changed
+11
-1
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
73 | 76 | | |
74 | 77 | | |
75 | 78 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| 48 | + | |
48 | 49 | | |
49 | 50 | | |
50 | 51 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1336 | 1336 | | |
1337 | 1337 | | |
1338 | 1338 | | |
| 1339 | + | |
1339 | 1340 | | |
1340 | 1341 | | |
1341 | 1342 | | |
| |||
2760 | 2761 | | |
2761 | 2762 | | |
2762 | 2763 | | |
2763 | | - | |
| 2764 | + | |
| 2765 | + | |
2764 | 2766 | | |
2765 | 2767 | | |
2766 | 2768 | | |
| |||
4110 | 4112 | | |
4111 | 4113 | | |
4112 | 4114 | | |
| 4115 | + | |
| 4116 | + | |
| 4117 | + | |
| 4118 | + | |
4113 | 4119 | | |
4114 | 4120 | | |
4115 | 4121 | | |
| |||
0 commit comments