diff options
author | Kees Cook <keescook@chromium.org> | 2016-10-28 01:22:25 -0700 |
---|---|---|
committer | Kees Cook <keescook@chromium.org> | 2017-06-30 12:00:51 -0700 |
commit | 3859a271a003aba01e45b85c9d8b355eb7bf25f9 (patch) | |
tree | 850c019e6a6449857e864b6a545b053ffe2f99a9 /include/linux/cred.h | |
parent | ffa47aa678cfaa9b88e8a26cfb115b4768325121 (diff) | |
download | linux-stable-3859a271a003aba01e45b85c9d8b355eb7bf25f9.tar.gz linux-stable-3859a271a003aba01e45b85c9d8b355eb7bf25f9.tar.bz2 linux-stable-3859a271a003aba01e45b85c9d8b355eb7bf25f9.zip |
randstruct: Mark various structs for randomization
This marks many critical kernel structures for randomization. These are
structures that have been targeted in the past in security exploits, or
contain functions pointers, pointers to function pointer tables, lists,
workqueues, ref-counters, credentials, permissions, or are otherwise
sensitive. This initial list was extracted from Brad Spengler/PaX Team's
code in the last public patch of grsecurity/PaX based on my understanding
of the code. Changes or omissions from the original code are mine and
don't reflect the original grsecurity/PaX code.
Left out of this list is task_struct, which requires special handling
and will be covered in a subsequent patch.
Signed-off-by: Kees Cook <keescook@chromium.org>
Diffstat (limited to 'include/linux/cred.h')
-rw-r--r-- | include/linux/cred.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/cred.h b/include/linux/cred.h index b03e7d049a64..82c8a9e1aabb 100644 --- a/include/linux/cred.h +++ b/include/linux/cred.h @@ -31,7 +31,7 @@ struct group_info { atomic_t usage; int ngroups; kgid_t gid[0]; -}; +} __randomize_layout; /** * get_group_info - Get a reference to a group info structure @@ -145,7 +145,7 @@ struct cred { struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */ struct group_info *group_info; /* supplementary groups for euid/fsgid */ struct rcu_head rcu; /* RCU deletion hook */ -}; +} __randomize_layout; extern void __put_cred(struct cred *); extern void exit_creds(struct task_struct *); |