Files
linux/include/uapi/linux
Benjamin Gray 97228ca375 powerpc/ptrace: Expose HASHKEYR register to ptrace
The HASHKEYR register contains a secret per-process key to enable unique
hashes per process. In general it should not be exposed to userspace
at all and a regular process has no need to know its key.

However, checkpoint restore in userspace (CRIU) functionality requires
that a process be able to set the HASHKEYR of another process, otherwise
existing hashes on the stack would be invalidated by a new random key.

Exposing HASHKEYR in this way also makes it appear in core dumps, which
is a security concern. Multiple threads may share a key, for example
just after a fork() call, where the kernel cannot know if the child is
going to return back along the parent's stack. If such a thread is
coerced into making a core dump, then the HASHKEYR value will be
readable and able to be used against all other threads sharing that key,
effectively undoing any protection offered by hashst/hashchk.

Therefore we expose HASHKEYR to ptrace when CONFIG_CHECKPOINT_RESTORE is
enabled, providing a choice of increased security or migratable ROP
protected processes. This is similar to how ARM exposes its PAC keys.

Signed-off-by: Benjamin Gray <bgray@linux.ibm.com>
Reviewed-by: Russell Currey <ruscur@russell.cc>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20230616034846.311705-8-bgray@linux.ibm.com
2023-06-19 17:36:27 +10:00
..
2022-09-15 09:08:09 +02:00
2022-04-19 13:13:47 +01:00
2021-11-01 13:36:08 +00:00
2022-08-11 10:31:19 -07:00
2022-06-07 10:20:42 -07:00
2021-11-26 16:48:59 +01:00
2023-04-22 14:41:30 -07:00
2023-01-20 09:33:22 +00:00
2023-03-06 15:49:07 -06:00
2022-04-04 08:55:23 +02:00
2023-01-18 17:12:37 -08:00
2023-03-16 21:20:32 -07:00
2021-10-07 13:51:11 +02:00
2022-08-10 13:49:50 +01:00
2022-03-11 08:28:05 -08:00
2021-11-15 07:53:10 -08:00
2022-06-03 20:09:27 +08:00
2022-09-20 09:13:38 +02:00
2023-03-23 17:25:46 +01:00
2022-12-01 20:06:06 -08:00
2023-04-27 19:15:11 -06:00
2023-03-16 21:20:32 -07:00
2022-09-07 16:46:03 +02:00
2022-09-20 09:13:38 +02:00
2023-01-26 10:52:18 +01:00
2022-11-17 11:04:23 -08:00
2022-09-27 17:29:09 -07:00
2023-03-23 17:25:46 +01:00
2023-02-20 19:26:56 -05:00
2023-04-15 09:11:30 +01:00
2022-12-05 10:30:47 +01:00