linux/init
Jann Horn b030ffaedc cred: clarify that task_struct::cred is only for the current task
The `cred` field in task_struct is currently marked as __rcu, but that's
not true: It can point to credentials from access_override_creds(), which
do not get freed with RCU delay.

What actually protects task_struct::cred is that accessing it is only
permitted for the current task (except for setting up a child during fork()
or tearing down a dead process).
(There is currently code in Smack that violates this rule, but that's a bug
and causes UAF, I have sent a separate fix for that.)

Clarify this, remove the __rcu marker, and remove RCU helpers from all
accesses to this field.

Signed-off-by: Jann Horn <jannh@google.com>
Reviewed-by: Serge Hallyn <serge@hallyn.com>
[PM: style tweak in security_init(), applied fixup from JH]
Signed-off-by: Paul Moore <paul@paul-moore.com>
2026-08-31 16:14:09 -04:00
..
.gitignore kbuild: build init/built-in.a just once 2022-09-29 04:40:15 +09:00
.kunitconfig initramfs_test: kunit tests for initramfs unpacking 2025-03-08 12:13:04 +01:00
calibrate.c calibrate: Rework delay timer calibration 2026-07-15 15:04:55 +02:00
do_mounts_initrd.c init: remove /proc/sys/kernel/real-root-dev 2026-01-12 17:22:27 +01:00
do_mounts_rd.c initrd: remove deprecated code path (linuxrc) 2026-01-12 17:22:22 +01:00
do_mounts.c init: do_mounts: use kmalloc() for allocations of temporary buffers 2026-05-22 12:12:20 +02:00
do_mounts.h fs: use nullfs unconditionally as the real rootfs 2026-01-14 11:23:39 +01:00
init_task.c cred: clarify that task_struct::cred is only for the current task 2026-08-31 16:14:09 -04:00
initramfs_internal.h init: add initramfs_internal.h 2025-03-04 09:52:36 +01:00
initramfs_test.c initramfs_test: use test init/exit hooks to override init fs 2026-07-31 12:56:51 +02:00
initramfs.c vfs-7.3-rc1.misc 2026-08-17 12:56:12 -07:00
Kconfig Bootconfig updates for v7.3: 2026-08-25 08:59:09 -07:00
main.c Bootconfig updates for v7.3: 2026-08-25 08:59:09 -07:00
Makefile initramfs_test: kunit tests for initramfs unpacking 2025-03-08 12:13:04 +01:00
noinitramfs.c
version-timestamp.c ns: drop custom reference count initialization for initial namespaces 2025-11-11 10:01:32 +01:00
version.c init/version.c: Replace strlcpy with strscpy 2023-09-22 09:50:56 -07:00