From 6448aa0ba3754eb5cc26c53098c011a40a74574b Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Mon, 1 Jun 2020 04:25:32 -0700 Subject: [PATCH 01/17] seccomp: Add find_notification helper This adds a helper which can iterate through a seccomp_filter to find a notification matching an ID. It removes several replicated chunks of code. Signed-off-by: Sargun Dhillon Acked-by: Christian Brauner Reviewed-by: Tycho Andersen Cc: Matt Denton Cc: Kees Cook , Cc: Jann Horn , Cc: Robert Sesek , Cc: Chris Palmer Cc: Christian Brauner Cc: Tycho Andersen Link: https://lore.kernel.org/r/20200601112532.150158-1-sargun@sargun.me Signed-off-by: Kees Cook --- kernel/seccomp.c | 53 ++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 26 deletions(-) diff --git a/kernel/seccomp.c b/kernel/seccomp.c index d653d8426de90c..c44e6a0615816c 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -41,6 +41,7 @@ #include #include #include +#include enum notify_state { SECCOMP_NOTIFY_INIT, @@ -1021,6 +1022,23 @@ static int seccomp_notify_release(struct inode *inode, struct file *file) return 0; } +/* must be called with notif_lock held */ +static inline struct seccomp_knotif * +find_notification(struct seccomp_filter *filter, u64 id) +{ + struct seccomp_knotif *cur; + + lockdep_assert_held(&filter->notify_lock); + + list_for_each_entry(cur, &filter->notif->notifications, list) { + if (cur->id == id) + return cur; + } + + return NULL; +} + + static long seccomp_notify_recv(struct seccomp_filter *filter, void __user *buf) { @@ -1078,15 +1096,8 @@ static long seccomp_notify_recv(struct seccomp_filter *filter, * may have died when we released the lock, so we need to make * sure it's still around. */ - knotif = NULL; mutex_lock(&filter->notify_lock); - list_for_each_entry(cur, &filter->notif->notifications, list) { - if (cur->id == unotif.id) { - knotif = cur; - break; - } - } - + knotif = find_notification(filter, unotif.id); if (knotif) { knotif->state = SECCOMP_NOTIFY_INIT; up(&filter->notif->request); @@ -1101,7 +1112,7 @@ static long seccomp_notify_send(struct seccomp_filter *filter, void __user *buf) { struct seccomp_notif_resp resp = {}; - struct seccomp_knotif *knotif = NULL, *cur; + struct seccomp_knotif *knotif; long ret; if (copy_from_user(&resp, buf, sizeof(resp))) @@ -1118,13 +1129,7 @@ static long seccomp_notify_send(struct seccomp_filter *filter, if (ret < 0) return ret; - list_for_each_entry(cur, &filter->notif->notifications, list) { - if (cur->id == resp.id) { - knotif = cur; - break; - } - } - + knotif = find_notification(filter, resp.id); if (!knotif) { ret = -ENOENT; goto out; @@ -1150,7 +1155,7 @@ static long seccomp_notify_send(struct seccomp_filter *filter, static long seccomp_notify_id_valid(struct seccomp_filter *filter, void __user *buf) { - struct seccomp_knotif *knotif = NULL; + struct seccomp_knotif *knotif; u64 id; long ret; @@ -1161,16 +1166,12 @@ static long seccomp_notify_id_valid(struct seccomp_filter *filter, if (ret < 0) return ret; - ret = -ENOENT; - list_for_each_entry(knotif, &filter->notif->notifications, list) { - if (knotif->id == id) { - if (knotif->state == SECCOMP_NOTIFY_SENT) - ret = 0; - goto out; - } - } + knotif = find_notification(filter, id); + if (knotif && knotif->state == SECCOMP_NOTIFY_SENT) + ret = 0; + else + ret = -ENOENT; -out: mutex_unlock(&filter->notify_lock); return ret; } From 8845106ea68a6c03aa9a62c907775278d0371ca8 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Sun, 31 May 2020 13:50:28 +0200 Subject: [PATCH 02/17] seccomp: rename "usage" to "refs" and document Naming the lifetime counter of a seccomp filter "usage" suggests a little too strongly that its about tasks that are using this filter while it also tracks other references such as the user notifier or ptrace. This also updates the documentation to note this fact. We'll be introducing an actual usage counter in a follow-up patch. Cc: Tycho Andersen Cc: Kees Cook Cc: Matt Denton Cc: Sargun Dhillon Cc: Jann Horn Cc: Chris Palmer Cc: Aleksa Sarai Cc: Robert Sesek Cc: Jeffrey Vander Stoep Cc: Linux Containers Signed-off-by: Christian Brauner Link: https://lore.kernel.org/r/20200531115031.391515-1-christian.brauner@ubuntu.com Signed-off-by: Kees Cook --- kernel/seccomp.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/kernel/seccomp.c b/kernel/seccomp.c index c44e6a0615816c..4620229a0a6d34 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -107,10 +107,11 @@ struct notification { /** * struct seccomp_filter - container for seccomp BPF programs * - * @usage: reference count to manage the object lifetime. - * get/put helpers should be used when accessing an instance - * outside of a lifetime-guarded section. In general, this - * is only needed for handling filters shared across tasks. + * @refs: Reference count to manage the object lifetime. + * A filter's reference count is incremented for each directly + * attached task, once for the dependent filter, and if + * requested for the user notifier. When @refs reaches zero, + * the filter can be freed. * @log: true if all actions except for SECCOMP_RET_ALLOW should be logged * @prev: points to a previously installed, or inherited, filter * @prog: the BPF program to evaluate @@ -125,10 +126,10 @@ struct notification { * how namespaces work. * * seccomp_filter objects should never be modified after being attached - * to a task_struct (other than @usage). + * to a task_struct (other than @refs). */ struct seccomp_filter { - refcount_t usage; + refcount_t refs; bool log; struct seccomp_filter *prev; struct bpf_prog *prog; @@ -462,7 +463,7 @@ static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) return ERR_PTR(ret); } - refcount_set(&sfilter->usage, 1); + refcount_set(&sfilter->refs, 1); return sfilter; } @@ -555,7 +556,7 @@ static long seccomp_attach_filter(unsigned int flags, static void __get_seccomp_filter(struct seccomp_filter *filter) { - refcount_inc(&filter->usage); + refcount_inc(&filter->refs); } /* get_seccomp_filter - increments the reference count of the filter on @tsk */ @@ -578,7 +579,7 @@ static inline void seccomp_filter_free(struct seccomp_filter *filter) static void __put_seccomp_filter(struct seccomp_filter *orig) { /* Clean up single-reference branches iteratively. */ - while (orig && refcount_dec_and_test(&orig->usage)) { + while (orig && refcount_dec_and_test(&orig->refs)) { struct seccomp_filter *freeme = orig; orig = orig->prev; seccomp_filter_free(freeme); From 17aed81020f526a298753a49775c0d6aebc86b71 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Sun, 31 May 2020 13:50:29 +0200 Subject: [PATCH 03/17] seccomp: release filter after task is fully dead The seccomp filter used to be released in free_task() which is called asynchronously via call_rcu() and assorted mechanisms. Since we need to inform tasks waiting on the seccomp notifier when a filter goes empty we will notify them as soon as a task has been marked fully dead in release_task(). To not split seccomp cleanup into two parts, move filter release out of free_task() and into release_task() after we've unhashed struct task from struct pid, exited signals, and unlinked it from the threadgroups' thread list. We'll put the empty filter notification infrastructure into it in a follow up patch. This also renames put_seccomp_filter() to seccomp_filter_release() which is a more descriptive name of what we're doing here especially once we've added the empty filter notification mechanism in there. We're also NULL-ing the task's filter tree entrypoint which seems cleaner than leaving a dangling pointer in there. Note that this shouldn't need any memory barriers since we're calling this when the task is in release_task() which means it's EXIT_DEAD. So it can't modify its seccomp filters anymore. You can also see this from the point where we're calling seccomp_filter_release(). It's after __exit_signal() and at this point, tsk->sighand will already have been NULLed which is required for thread-sync and filter installation alike. Cc: Tycho Andersen Cc: Kees Cook Cc: Matt Denton Cc: Sargun Dhillon Cc: Jann Horn Cc: Chris Palmer Cc: Aleksa Sarai Cc: Robert Sesek Cc: Jeffrey Vander Stoep Cc: Linux Containers Signed-off-by: Christian Brauner Link: https://lore.kernel.org/r/20200531115031.391515-2-christian.brauner@ubuntu.com Signed-off-by: Kees Cook --- include/linux/seccomp.h | 4 +-- kernel/exit.c | 1 + kernel/fork.c | 1 - kernel/seccomp.c | 62 ++++++++++++++++++++++++----------------- 4 files changed, 40 insertions(+), 28 deletions(-) diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index 4192369b84181d..1644922af19aa4 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h @@ -82,10 +82,10 @@ static inline int seccomp_mode(struct seccomp *s) #endif /* CONFIG_SECCOMP */ #ifdef CONFIG_SECCOMP_FILTER -extern void put_seccomp_filter(struct task_struct *tsk); +extern void seccomp_filter_release(struct task_struct *tsk); extern void get_seccomp_filter(struct task_struct *tsk); #else /* CONFIG_SECCOMP_FILTER */ -static inline void put_seccomp_filter(struct task_struct *tsk) +static inline void seccomp_filter_release(struct task_struct *tsk) { return; } diff --git a/kernel/exit.c b/kernel/exit.c index 727150f2810338..00d77e5ba70067 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -217,6 +217,7 @@ void release_task(struct task_struct *p) } write_unlock_irq(&tasklist_lock); + seccomp_filter_release(p); proc_flush_pid(thread_pid); put_pid(thread_pid); release_thread(p); diff --git a/kernel/fork.c b/kernel/fork.c index efc5493203ae0b..0134a82837d5ee 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -473,7 +473,6 @@ void free_task(struct task_struct *tsk) #endif rt_mutex_debug_task_free(tsk); ftrace_graph_exit_task(tsk); - put_seccomp_filter(tsk); arch_release_task_struct(tsk); if (tsk->flags & PF_KTHREAD) free_kthread_struct(tsk); diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 4620229a0a6d34..d4d9b3eefcf87a 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -368,6 +368,42 @@ static inline pid_t seccomp_can_sync_threads(void) return 0; } +static inline void seccomp_filter_free(struct seccomp_filter *filter) +{ + if (filter) { + bpf_prog_destroy(filter->prog); + kfree(filter); + } +} + +static void __put_seccomp_filter(struct seccomp_filter *orig) +{ + /* Clean up single-reference branches iteratively. */ + while (orig && refcount_dec_and_test(&orig->refs)) { + struct seccomp_filter *freeme = orig; + orig = orig->prev; + seccomp_filter_free(freeme); + } +} + +/** + * seccomp_filter_release - Detach the task from its filter tree + * and drop its reference count during + * exit. + * + * This function should only be called when the task is exiting as + * it detaches it from its filter tree. As such, READ_ONCE() and + * barriers are not needed here, as would normally be needed. + */ +void seccomp_filter_release(struct task_struct *tsk) +{ + struct seccomp_filter *orig = tsk->seccomp.filter; + + /* Detach task from its filter tree. */ + tsk->seccomp.filter = NULL; + __put_seccomp_filter(orig); +} + /** * seccomp_sync_threads: sets all threads to use current's filter * @@ -397,7 +433,7 @@ static inline void seccomp_sync_threads(unsigned long flags) * current's path will hold a reference. (This also * allows a put before the assignment.) */ - put_seccomp_filter(thread); + __put_seccomp_filter(thread->seccomp.filter); smp_store_release(&thread->seccomp.filter, caller->seccomp.filter); @@ -568,30 +604,6 @@ void get_seccomp_filter(struct task_struct *tsk) __get_seccomp_filter(orig); } -static inline void seccomp_filter_free(struct seccomp_filter *filter) -{ - if (filter) { - bpf_prog_destroy(filter->prog); - kfree(filter); - } -} - -static void __put_seccomp_filter(struct seccomp_filter *orig) -{ - /* Clean up single-reference branches iteratively. */ - while (orig && refcount_dec_and_test(&orig->refs)) { - struct seccomp_filter *freeme = orig; - orig = orig->prev; - seccomp_filter_free(freeme); - } -} - -/* put_seccomp_filter - decrements the ref count of tsk->seccomp.filter */ -void put_seccomp_filter(struct task_struct *tsk) -{ - __put_seccomp_filter(tsk->seccomp.filter); -} - static void seccomp_init_siginfo(kernel_siginfo_t *info, int syscall, int reason) { clear_siginfo(info); From ae5baceef929191672b94a6460eac11d0ee7b6f0 Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Mon, 1 Jun 2020 11:50:07 -0700 Subject: [PATCH 04/17] seccomp: Lift wait_queue into struct seccomp_filter Lift the wait_queue from struct notification into struct seccomp_filter. This is cleaner overall and lets us avoid having to take the notifier mutex in the future for EPOLLHUP notifications since we need to neither read nor modify the notifier specific aspects of the seccomp filter. In the exit path I'd very much like to avoid having to take the notifier mutex for each filter in the task's filter hierarchy. Cc: Tycho Andersen Cc: Kees Cook Cc: Matt Denton Cc: Sargun Dhillon Cc: Jann Horn Cc: Chris Palmer Cc: Aleksa Sarai Cc: Robert Sesek Cc: Jeffrey Vander Stoep Cc: Linux Containers Signed-off-by: Christian Brauner Signed-off-by: Kees Cook --- kernel/seccomp.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/kernel/seccomp.c b/kernel/seccomp.c index d4d9b3eefcf87a..436b23d84c2ff8 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -95,13 +95,11 @@ struct seccomp_knotif { * filter->notify_lock. * @next_id: The id of the next request. * @notifications: A list of struct seccomp_knotif elements. - * @wqh: A wait queue for poll. */ struct notification { struct semaphore request; u64 next_id; struct list_head notifications; - wait_queue_head_t wqh; }; /** @@ -117,6 +115,7 @@ struct notification { * @prog: the BPF program to evaluate * @notif: the struct that holds all notification related information * @notify_lock: A lock for all notification-related accesses. + * @wqh: A wait queue for poll if a notifier is in use. * * seccomp_filter objects are organized in a tree linked via the @prev * pointer. For any task, it appears to be a singly-linked list starting @@ -135,6 +134,7 @@ struct seccomp_filter { struct bpf_prog *prog; struct notification *notif; struct mutex notify_lock; + wait_queue_head_t wqh; }; /* Limit any path through the tree to 256KB worth of instructions. */ @@ -500,6 +500,7 @@ static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) } refcount_set(&sfilter->refs, 1); + init_waitqueue_head(&sfilter->wqh); return sfilter; } @@ -771,7 +772,7 @@ static int seccomp_do_user_notification(int this_syscall, list_add(&n.list, &match->notif->notifications); up(&match->notif->request); - wake_up_poll(&match->notif->wqh, EPOLLIN | EPOLLRDNORM); + wake_up_poll(&match->wqh, EPOLLIN | EPOLLRDNORM); mutex_unlock(&match->notify_lock); /* @@ -1095,7 +1096,7 @@ static long seccomp_notify_recv(struct seccomp_filter *filter, unotif.data = *(knotif->data); knotif->state = SECCOMP_NOTIFY_SENT; - wake_up_poll(&filter->notif->wqh, EPOLLOUT | EPOLLWRNORM); + wake_up_poll(&filter->wqh, EPOLLOUT | EPOLLWRNORM); ret = 0; out: mutex_unlock(&filter->notify_lock); @@ -1214,7 +1215,7 @@ static __poll_t seccomp_notify_poll(struct file *file, __poll_t ret = 0; struct seccomp_knotif *cur; - poll_wait(file, &filter->notif->wqh, poll_tab); + poll_wait(file, &filter->wqh, poll_tab); if (mutex_lock_interruptible(&filter->notify_lock) < 0) return EPOLLERR; @@ -1258,7 +1259,6 @@ static struct file *init_listener(struct seccomp_filter *filter) sema_init(&filter->notif->request, 0); filter->notif->next_id = get_random_u64(); INIT_LIST_HEAD(&filter->notif->notifications); - init_waitqueue_head(&filter->notif->wqh); ret = anon_inode_getfile("seccomp notify", &seccomp_notify_ops, filter, O_RDWR); From 50baf84975a65873b1ba59a0d6c0c7bcf716fdcd Mon Sep 17 00:00:00 2001 From: Christian Brauner Date: Sun, 31 May 2020 13:50:30 +0200 Subject: [PATCH 05/17] seccomp: notify about unused filter We've been making heavy use of the seccomp notifier to intercept and handle certain syscalls for containers. This patch allows a syscall supervisor listening on a given notifier to be notified when a seccomp filter has become unused. A container is often managed by a singleton supervisor process the so-called "monitor". This monitor process has an event loop which has various event handlers registered. If the user specified a seccomp profile that included a notifier for various syscalls then we also register a seccomp notify even handler. For any container using a separate pid namespace the lifecycle of the seccomp notifier is bound to the init process of the pid namespace, i.e. when the init process exits the filter must be unused. If a new process attaches to a container we force it to assume a seccomp profile. This can either be the same seccomp profile as the container was started with or a modified one. If the attaching process makes use of the seccomp notifier we will register a new seccomp notifier handler in the monitor's event loop. However, when the attaching process exits we can't simply delete the handler since other child processes could've been created (daemons spawned etc.) that have inherited the seccomp filter and so we need to keep the seccomp notifier fd alive in the event loop. But this is problematic since we don't get a notification when the seccomp filter has become unused and so we currently never remove the seccomp notifier fd from the event loop and just keep accumulating fds in the event loop. We've had this issue for a while but it has recently become more pressing as more and larger users make use of this. To fix this, we introduce a new "users" reference counter that tracks any tasks and dependent filters making use of a filter. When a notifier is registered waiting tasks will be notified that the filter is now empty by receiving a (E)POLLHUP event. The concept in this patch introduces is the same as for signal_struct, i.e. reference counting for life-cycle management is decoupled from reference counting taks using the object. There's probably some trickery possible but the second counter is just the correct way of doing this IMHO and has precedence. Cc: Tycho Andersen Cc: Kees Cook Cc: Matt Denton Cc: Sargun Dhillon Cc: Jann Horn Cc: Chris Palmer Cc: Aleksa Sarai Cc: Robert Sesek Cc: Jeffrey Vander Stoep Cc: Linux Containers Signed-off-by: Christian Brauner Link: https://lore.kernel.org/r/20200531115031.391515-3-christian.brauner@ubuntu.com Signed-off-by: Kees Cook --- kernel/seccomp.c | 44 +++++++++++++++++++++++++++++++++++++++----- 1 file changed, 39 insertions(+), 5 deletions(-) diff --git a/kernel/seccomp.c b/kernel/seccomp.c index 436b23d84c2ff8..e8c1c760bd51fb 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -110,6 +110,14 @@ struct notification { * attached task, once for the dependent filter, and if * requested for the user notifier. When @refs reaches zero, * the filter can be freed. + * @users: A filter's @users count is incremented for each directly + * attached task (filter installation, fork(), thread_sync), + * and once for the dependent filter (tracked in filter->prev). + * When it reaches zero it indicates that no direct or indirect + * users of that filter exist. No new tasks can get associated with + * this filter after reaching 0. The @users count is always smaller + * or equal to @refs. Hence, reaching 0 for @users does not mean + * the filter can be freed. * @log: true if all actions except for SECCOMP_RET_ALLOW should be logged * @prev: points to a previously installed, or inherited, filter * @prog: the BPF program to evaluate @@ -129,6 +137,7 @@ struct notification { */ struct seccomp_filter { refcount_t refs; + refcount_t users; bool log; struct seccomp_filter *prev; struct bpf_prog *prog; @@ -376,6 +385,15 @@ static inline void seccomp_filter_free(struct seccomp_filter *filter) } } +static void __seccomp_filter_orphan(struct seccomp_filter *orig) +{ + while (orig && refcount_dec_and_test(&orig->users)) { + if (waitqueue_active(&orig->wqh)) + wake_up_poll(&orig->wqh, EPOLLHUP); + orig = orig->prev; + } +} + static void __put_seccomp_filter(struct seccomp_filter *orig) { /* Clean up single-reference branches iteratively. */ @@ -386,10 +404,18 @@ static void __put_seccomp_filter(struct seccomp_filter *orig) } } +static void __seccomp_filter_release(struct seccomp_filter *orig) +{ + /* Notify about any unused filters in the task's former filter tree. */ + __seccomp_filter_orphan(orig); + /* Finally drop all references to the task's former tree. */ + __put_seccomp_filter(orig); +} + /** - * seccomp_filter_release - Detach the task from its filter tree - * and drop its reference count during - * exit. + * seccomp_filter_release - Detach the task from its filter tree, + * drop its reference count, and notify + * about unused filters * * This function should only be called when the task is exiting as * it detaches it from its filter tree. As such, READ_ONCE() and @@ -401,7 +427,7 @@ void seccomp_filter_release(struct task_struct *tsk) /* Detach task from its filter tree. */ tsk->seccomp.filter = NULL; - __put_seccomp_filter(orig); + __seccomp_filter_release(orig); } /** @@ -428,12 +454,15 @@ static inline void seccomp_sync_threads(unsigned long flags) /* Get a task reference for the new leaf node. */ get_seccomp_filter(caller); + /* * Drop the task reference to the shared ancestor since * current's path will hold a reference. (This also * allows a put before the assignment.) */ - __put_seccomp_filter(thread->seccomp.filter); + __seccomp_filter_release(thread->seccomp.filter); + + /* Make our new filter tree visible. */ smp_store_release(&thread->seccomp.filter, caller->seccomp.filter); @@ -500,6 +529,7 @@ static struct seccomp_filter *seccomp_prepare_filter(struct sock_fprog *fprog) } refcount_set(&sfilter->refs, 1); + refcount_set(&sfilter->users, 1); init_waitqueue_head(&sfilter->wqh); return sfilter; @@ -603,6 +633,7 @@ void get_seccomp_filter(struct task_struct *tsk) if (!orig) return; __get_seccomp_filter(orig); + refcount_inc(&orig->users); } static void seccomp_init_siginfo(kernel_siginfo_t *info, int syscall, int reason) @@ -1231,6 +1262,9 @@ static __poll_t seccomp_notify_poll(struct file *file, mutex_unlock(&filter->notify_lock); + if (refcount_read(&filter->users) == 0) + ret |= EPOLLHUP; + return ret; } From 873932aae4f68c0f95566d8aae268b639795ebc4 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Mon, 15 Jun 2020 15:42:46 -0700 Subject: [PATCH 06/17] seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID When SECCOMP_IOCTL_NOTIF_ID_VALID was first introduced it had the wrong direction flag set. While this isn't a big deal as nothing currently enforces these bits in the kernel, it should be defined correctly. Fix the define and provide support for the old command until it is no longer needed for backward compatibility. Fixes: 6a21cc50f0c7 ("seccomp: add a return code to trap to userspace") Signed-off-by: Kees Cook --- include/uapi/linux/seccomp.h | 3 ++- kernel/seccomp.c | 9 +++++++++ tools/testing/selftests/seccomp/seccomp_bpf.c | 2 +- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/uapi/linux/seccomp.h b/include/uapi/linux/seccomp.h index c1735455bc536b..965290f7dcc282 100644 --- a/include/uapi/linux/seccomp.h +++ b/include/uapi/linux/seccomp.h @@ -123,5 +123,6 @@ struct seccomp_notif_resp { #define SECCOMP_IOCTL_NOTIF_RECV SECCOMP_IOWR(0, struct seccomp_notif) #define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, \ struct seccomp_notif_resp) -#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOR(2, __u64) +#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64) + #endif /* _UAPI_LINUX_SECCOMP_H */ diff --git a/kernel/seccomp.c b/kernel/seccomp.c index e8c1c760bd51fb..c5bbbaf2571d43 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -43,6 +43,14 @@ #include #include +/* + * When SECCOMP_IOCTL_NOTIF_ID_VALID was first introduced, it had the + * wrong direction flag in the ioctl number. This is the broken one, + * which the kernel needs to keep supporting until all userspaces stop + * using the wrong command number. + */ +#define SECCOMP_IOCTL_NOTIF_ID_VALID_WRONG_DIR SECCOMP_IOR(2, __u64) + enum notify_state { SECCOMP_NOTIFY_INIT, SECCOMP_NOTIFY_SENT, @@ -1232,6 +1240,7 @@ static long seccomp_notify_ioctl(struct file *file, unsigned int cmd, return seccomp_notify_recv(filter, buf); case SECCOMP_IOCTL_NOTIF_SEND: return seccomp_notify_send(filter, buf); + case SECCOMP_IOCTL_NOTIF_ID_VALID_WRONG_DIR: case SECCOMP_IOCTL_NOTIF_ID_VALID: return seccomp_notify_id_valid(filter, buf); default: diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c index 252140a5255314..ccf276e1388299 100644 --- a/tools/testing/selftests/seccomp/seccomp_bpf.c +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c @@ -180,7 +180,7 @@ struct seccomp_metadata { #define SECCOMP_IOCTL_NOTIF_RECV SECCOMP_IOWR(0, struct seccomp_notif) #define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, \ struct seccomp_notif_resp) -#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOR(2, __u64) +#define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64) struct seccomp_notif { __u64 id; From 0c32947234714fab2467da58e969de9755591e51 Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Tue, 2 Jun 2020 18:10:43 -0700 Subject: [PATCH 07/17] seccomp: Introduce addfd ioctl to seccomp user notifier The current SECCOMP_RET_USER_NOTIF API allows for syscall supervision over an fd. It is often used in settings where a supervising task emulates syscalls on behalf of a supervised task in userspace, either to further restrict the supervisee's syscall abilities or to circumvent kernel enforced restrictions the supervisor deems safe to lift (e.g. actually performing a mount(2) for an unprivileged container). While SECCOMP_RET_USER_NOTIF allows for the interception of any syscall, only a certain subset of syscalls could be correctly emulated. Over the last few development cycles, the set of syscalls which can't be emulated has been reduced due to the addition of pidfd_getfd(2). With this we are now able to, for example, intercept syscalls that require the supervisor to operate on file descriptors of the supervisee such as connect(2). However, syscalls that cause new file descriptors to be installed can not currently be correctly emulated since there is no way for the supervisor to inject file descriptors into the supervisee. This patch adds a new addfd ioctl to remove this restriction by allowing the supervisor to install file descriptors into the intercepted task. By implementing this feature via seccomp the supervisor effectively instructs the supervisee to install a set of file descriptors into its own file descriptor table during the intercepted syscall. This way it is possible to intercept syscalls such as open() or accept(), and install (or replace, like dup2(2)) the supervisor's resulting fd into the supervisee. One replacement use-case would be to redirect the stdout and stderr of a supervisee into log file descriptors opened by the supervisor. The ioctl handling is based on the discussions[1] of how Extensible Arguments should interact with ioctls. Instead of building size into the addfd structure, make it a function of the ioctl command (which is how sizes are normally passed to ioctls). To support forward and backward compatibility, just mask out the direction and size, and match everything. The size (and any future direction) checks are done along with copy_struct_from_user() logic. As a note, the seccomp_notif_addfd structure is laid out based on 8-byte alignment without requiring packing as there have been packing issues with uapi highlighted before[2][3]. Although we could overload the newfd field and use -1 to indicate that it is not to be used, doing so requires changing the size of the fd field, and introduces struct packing complexity. [1]: https://lore.kernel.org/lkml/87o8w9bcaf.fsf@mid.deneb.enyo.de/ [2]: https://lore.kernel.org/lkml/a328b91d-fd8f-4f27-b3c2-91a9c45f18c0@rasmusvillemoes.dk/ [3]: https://lore.kernel.org/lkml/20200612104629.GA15814@ircssh-2.c.rugged-nimbus-611.internal Cc: Christoph Hellwig Cc: Christian Brauner Cc: Tycho Andersen Cc: Jann Horn Cc: Robert Sesek Cc: Chris Palmer Cc: Al Viro Cc: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: linux-api@vger.kernel.org Suggested-by: Matt Denton Link: https://lore.kernel.org/r/20200603011044.7972-4-sargun@sargun.me Signed-off-by: Sargun Dhillon Reviewed-by: Will Drewry Co-developed-by: Kees Cook Signed-off-by: Kees Cook --- include/linux/seccomp.h | 4 + include/uapi/linux/seccomp.h | 22 +++++ kernel/seccomp.c | 175 ++++++++++++++++++++++++++++++++++- 3 files changed, 199 insertions(+), 2 deletions(-) diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index 1644922af19aa4..f272b22b6b2a82 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h @@ -10,6 +10,10 @@ SECCOMP_FILTER_FLAG_NEW_LISTENER | \ SECCOMP_FILTER_FLAG_TSYNC_ESRCH) +/* sizeof() the first published struct seccomp_notif_addfd */ +#define SECCOMP_NOTIFY_ADDFD_SIZE_VER0 24 +#define SECCOMP_NOTIFY_ADDFD_SIZE_LATEST SECCOMP_NOTIFY_ADDFD_SIZE_VER0 + #ifdef CONFIG_SECCOMP #include diff --git a/include/uapi/linux/seccomp.h b/include/uapi/linux/seccomp.h index 965290f7dcc282..6ba18b82a02e45 100644 --- a/include/uapi/linux/seccomp.h +++ b/include/uapi/linux/seccomp.h @@ -113,6 +113,25 @@ struct seccomp_notif_resp { __u32 flags; }; +/* valid flags for seccomp_notif_addfd */ +#define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0) /* Specify remote fd */ + +/** + * struct seccomp_notif_addfd + * @id: The ID of the seccomp notification + * @flags: SECCOMP_ADDFD_FLAG_* + * @srcfd: The local fd number + * @newfd: Optional remote FD number if SETFD option is set, otherwise 0. + * @newfd_flags: The O_* flags the remote FD should have applied + */ +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; +}; + #define SECCOMP_IOC_MAGIC '!' #define SECCOMP_IO(nr) _IO(SECCOMP_IOC_MAGIC, nr) #define SECCOMP_IOR(nr, type) _IOR(SECCOMP_IOC_MAGIC, nr, type) @@ -124,5 +143,8 @@ struct seccomp_notif_resp { #define SECCOMP_IOCTL_NOTIF_SEND SECCOMP_IOWR(1, \ struct seccomp_notif_resp) #define SECCOMP_IOCTL_NOTIF_ID_VALID SECCOMP_IOW(2, __u64) +/* On success, the return value is the remote process's added fd number */ +#define SECCOMP_IOCTL_NOTIF_ADDFD SECCOMP_IOW(3, \ + struct seccomp_notif_addfd) #endif /* _UAPI_LINUX_SECCOMP_H */ diff --git a/kernel/seccomp.c b/kernel/seccomp.c index c5bbbaf2571d43..63efdccdda6060 100644 --- a/kernel/seccomp.c +++ b/kernel/seccomp.c @@ -86,10 +86,42 @@ struct seccomp_knotif { long val; u32 flags; - /* Signals when this has entered SECCOMP_NOTIFY_REPLIED */ + /* + * Signals when this has changed states, such as the listener + * dying, a new seccomp addfd message, or changing to REPLIED + */ struct completion ready; struct list_head list; + + /* outstanding addfd requests */ + struct list_head addfd; +}; + +/** + * struct seccomp_kaddfd - container for seccomp_addfd ioctl messages + * + * @file: A reference to the file to install in the other task + * @fd: The fd number to install it at. If the fd number is -1, it means the + * installing process should allocate the fd as normal. + * @flags: The flags for the new file descriptor. At the moment, only O_CLOEXEC + * is allowed. + * @ret: The return value of the installing process. It is set to the fd num + * upon success (>= 0). + * @completion: Indicates that the installing process has completed fd + * installation, or gone away (either due to successful + * reply, or signal) + * + */ +struct seccomp_kaddfd { + struct file *file; + int fd; + unsigned int flags; + + /* To only be set on reply */ + int ret; + struct completion completion; + struct list_head list; }; /** @@ -789,6 +821,17 @@ static u64 seccomp_next_notify_id(struct seccomp_filter *filter) return filter->notif->next_id++; } +static void seccomp_handle_addfd(struct seccomp_kaddfd *addfd) +{ + /* + * Remove the notification, and reset the list pointers, indicating + * that it has been handled. + */ + list_del_init(&addfd->list); + addfd->ret = receive_fd_replace(addfd->fd, addfd->file, addfd->flags); + complete(&addfd->completion); +} + static int seccomp_do_user_notification(int this_syscall, struct seccomp_filter *match, const struct seccomp_data *sd) @@ -797,6 +840,7 @@ static int seccomp_do_user_notification(int this_syscall, u32 flags = 0; long ret = 0; struct seccomp_knotif n = {}; + struct seccomp_kaddfd *addfd, *tmp; mutex_lock(&match->notify_lock); err = -ENOSYS; @@ -809,6 +853,7 @@ static int seccomp_do_user_notification(int this_syscall, n.id = seccomp_next_notify_id(match); init_completion(&n.ready); list_add(&n.list, &match->notif->notifications); + INIT_LIST_HEAD(&n.addfd); up(&match->notif->request); wake_up_poll(&match->wqh, EPOLLIN | EPOLLRDNORM); @@ -817,17 +862,34 @@ static int seccomp_do_user_notification(int this_syscall, /* * This is where we wait for a reply from userspace. */ +wait: err = wait_for_completion_interruptible(&n.ready); mutex_lock(&match->notify_lock); if (err == 0) { + /* Check if we were woken up by a addfd message */ + addfd = list_first_entry_or_null(&n.addfd, + struct seccomp_kaddfd, list); + if (addfd && n.state != SECCOMP_NOTIFY_REPLIED) { + seccomp_handle_addfd(addfd); + mutex_unlock(&match->notify_lock); + goto wait; + } ret = n.val; err = n.error; flags = n.flags; } + /* If there were any pending addfd calls, clear them out */ + list_for_each_entry_safe(addfd, tmp, &n.addfd, list) { + /* The process went away before we got a chance to handle it */ + addfd->ret = -ESRCH; + list_del_init(&addfd->list); + complete(&addfd->completion); + } + /* * Note that it's possible the listener died in between the time when - * we were notified of a respons (or a signal) and when we were able to + * we were notified of a response (or a signal) and when we were able to * re-acquire the lock, so only delete from the list if the * notification actually exists. * @@ -1065,6 +1127,11 @@ static int seccomp_notify_release(struct inode *inode, struct file *file) knotif->error = -ENOSYS; knotif->val = 0; + /* + * We do not need to wake up any pending addfd messages, as + * the notifier will do that for us, as this just looks + * like a standard reply. + */ complete(&knotif->ready); } @@ -1229,12 +1296,109 @@ static long seccomp_notify_id_valid(struct seccomp_filter *filter, return ret; } +static long seccomp_notify_addfd(struct seccomp_filter *filter, + struct seccomp_notif_addfd __user *uaddfd, + unsigned int size) +{ + struct seccomp_notif_addfd addfd; + struct seccomp_knotif *knotif; + struct seccomp_kaddfd kaddfd; + int ret; + + BUILD_BUG_ON(sizeof(addfd) < SECCOMP_NOTIFY_ADDFD_SIZE_VER0); + BUILD_BUG_ON(sizeof(addfd) != SECCOMP_NOTIFY_ADDFD_SIZE_LATEST); + + if (size < SECCOMP_NOTIFY_ADDFD_SIZE_VER0 || size >= PAGE_SIZE) + return -EINVAL; + + ret = copy_struct_from_user(&addfd, sizeof(addfd), uaddfd, size); + if (ret) + return ret; + + if (addfd.newfd_flags & ~O_CLOEXEC) + return -EINVAL; + + if (addfd.flags & ~SECCOMP_ADDFD_FLAG_SETFD) + return -EINVAL; + + if (addfd.newfd && !(addfd.flags & SECCOMP_ADDFD_FLAG_SETFD)) + return -EINVAL; + + kaddfd.file = fget(addfd.srcfd); + if (!kaddfd.file) + return -EBADF; + + kaddfd.flags = addfd.newfd_flags; + kaddfd.fd = (addfd.flags & SECCOMP_ADDFD_FLAG_SETFD) ? + addfd.newfd : -1; + init_completion(&kaddfd.completion); + + ret = mutex_lock_interruptible(&filter->notify_lock); + if (ret < 0) + goto out; + + knotif = find_notification(filter, addfd.id); + if (!knotif) { + ret = -ENOENT; + goto out_unlock; + } + + /* + * We do not want to allow for FD injection to occur before the + * notification has been picked up by a userspace handler, or after + * the notification has been replied to. + */ + if (knotif->state != SECCOMP_NOTIFY_SENT) { + ret = -EINPROGRESS; + goto out_unlock; + } + + list_add(&kaddfd.list, &knotif->addfd); + complete(&knotif->ready); + mutex_unlock(&filter->notify_lock); + + /* Now we wait for it to be processed or be interrupted */ + ret = wait_for_completion_interruptible(&kaddfd.completion); + if (ret == 0) { + /* + * We had a successful completion. The other side has already + * removed us from the addfd queue, and + * wait_for_completion_interruptible has a memory barrier upon + * success that lets us read this value directly without + * locking. + */ + ret = kaddfd.ret; + goto out; + } + + mutex_lock(&filter->notify_lock); + /* + * Even though we were woken up by a signal and not a successful + * completion, a completion may have happened in the mean time. + * + * We need to check again if the addfd request has been handled, + * and if not, we will remove it from the queue. + */ + if (list_empty(&kaddfd.list)) + ret = kaddfd.ret; + else + list_del(&kaddfd.list); + +out_unlock: + mutex_unlock(&filter->notify_lock); +out: + fput(kaddfd.file); + + return ret; +} + static long seccomp_notify_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { struct seccomp_filter *filter = file->private_data; void __user *buf = (void __user *)arg; + /* Fixed-size ioctls */ switch (cmd) { case SECCOMP_IOCTL_NOTIF_RECV: return seccomp_notify_recv(filter, buf); @@ -1243,6 +1407,13 @@ static long seccomp_notify_ioctl(struct file *file, unsigned int cmd, case SECCOMP_IOCTL_NOTIF_ID_VALID_WRONG_DIR: case SECCOMP_IOCTL_NOTIF_ID_VALID: return seccomp_notify_id_valid(filter, buf); + } + + /* Extensible Argument ioctls */ +#define EA_IOCTL(cmd) ((cmd) & ~(IOC_INOUT | IOCSIZE_MASK)) + switch (EA_IOCTL(cmd)) { + case EA_IOCTL(SECCOMP_IOCTL_NOTIF_ADDFD): + return seccomp_notify_addfd(filter, buf, _IOC_SIZE(cmd)); default: return -EINVAL; } From 82be3d187b6ae8dc71a814653d26fce5a521ad02 Mon Sep 17 00:00:00 2001 From: Sargun Dhillon Date: Tue, 2 Jun 2020 18:10:44 -0700 Subject: [PATCH 08/17] selftests/seccomp: Test SECCOMP_IOCTL_NOTIF_ADDFD Test whether we can add file descriptors in response to notifications. This injects the file descriptors via notifications, and then uses kcmp to determine whether or not it has been successful. It also includes some basic sanity checking for arguments. Signed-off-by: Sargun Dhillon Cc: Al Viro Cc: Chris Palmer Cc: Christian Brauner Cc: Jann Horn Cc: Kees Cook Cc: Robert Sesek Cc: Tycho Andersen Cc: Matt Denton Cc: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org Link: https://lore.kernel.org/r/20200603011044.7972-5-sargun@sargun.me Co-developed-by: Kees Cook Signed-off-by: Kees Cook --- tools/testing/selftests/seccomp/seccomp_bpf.c | 364 ++++++++++++++++++ 1 file changed, 364 insertions(+) diff --git a/tools/testing/selftests/seccomp/seccomp_bpf.c b/tools/testing/selftests/seccomp/seccomp_bpf.c index ccf276e1388299..a1def35e592b49 100644 --- a/tools/testing/selftests/seccomp/seccomp_bpf.c +++ b/tools/testing/selftests/seccomp/seccomp_bpf.c @@ -45,6 +45,7 @@ #include #include #include +#include #include #include @@ -167,7 +168,9 @@ struct seccomp_metadata { #ifndef SECCOMP_FILTER_FLAG_NEW_LISTENER #define SECCOMP_FILTER_FLAG_NEW_LISTENER (1UL << 3) +#endif +#ifndef SECCOMP_RET_USER_NOTIF #define SECCOMP_RET_USER_NOTIF 0x7fc00000U #define SECCOMP_IOC_MAGIC '!' @@ -203,6 +206,39 @@ struct seccomp_notif_sizes { }; #endif +#ifndef SECCOMP_IOCTL_NOTIF_ADDFD +/* On success, the return value is the remote process's added fd number */ +#define SECCOMP_IOCTL_NOTIF_ADDFD SECCOMP_IOW(3, \ + struct seccomp_notif_addfd) + +/* valid flags for seccomp_notif_addfd */ +#define SECCOMP_ADDFD_FLAG_SETFD (1UL << 0) /* Specify remote fd */ + +struct seccomp_notif_addfd { + __u64 id; + __u32 flags; + __u32 srcfd; + __u32 newfd; + __u32 newfd_flags; +}; +#endif + +struct seccomp_notif_addfd_small { + __u64 id; + char weird[4]; +}; +#define SECCOMP_IOCTL_NOTIF_ADDFD_SMALL \ + SECCOMP_IOW(3, struct seccomp_notif_addfd_small) + +struct seccomp_notif_addfd_big { + union { + struct seccomp_notif_addfd addfd; + char buf[sizeof(struct seccomp_notif_addfd) + 8]; + }; +}; +#define SECCOMP_IOCTL_NOTIF_ADDFD_BIG \ + SECCOMP_IOWR(3, struct seccomp_notif_addfd_big) + #ifndef PTRACE_EVENTMSG_SYSCALL_ENTRY #define PTRACE_EVENTMSG_SYSCALL_ENTRY 1 #define PTRACE_EVENTMSG_SYSCALL_EXIT 2 @@ -3687,6 +3723,334 @@ TEST(user_notification_continue) } } +TEST(user_notification_filter_empty) +{ + pid_t pid; + long ret; + int status; + struct pollfd pollfd; + struct clone_args args = { + .flags = CLONE_FILES, + .exit_signal = SIGCHLD, + }; + + ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); + ASSERT_EQ(0, ret) { + TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); + } + + pid = sys_clone3(&args, sizeof(args)); + ASSERT_GE(pid, 0); + + if (pid == 0) { + int listener; + + listener = user_notif_syscall(__NR_mknod, SECCOMP_FILTER_FLAG_NEW_LISTENER); + if (listener < 0) + _exit(EXIT_FAILURE); + + if (dup2(listener, 200) != 200) + _exit(EXIT_FAILURE); + + close(listener); + + _exit(EXIT_SUCCESS); + } + + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); + + /* + * The seccomp filter has become unused so we should be notified once + * the kernel gets around to cleaning up task struct. + */ + pollfd.fd = 200; + pollfd.events = POLLHUP; + + EXPECT_GT(poll(&pollfd, 1, 2000), 0); + EXPECT_GT((pollfd.revents & POLLHUP) ?: 0, 0); +} + +static void *do_thread(void *data) +{ + return NULL; +} + +TEST(user_notification_filter_empty_threaded) +{ + pid_t pid; + long ret; + int status; + struct pollfd pollfd; + struct clone_args args = { + .flags = CLONE_FILES, + .exit_signal = SIGCHLD, + }; + + ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); + ASSERT_EQ(0, ret) { + TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); + } + + pid = sys_clone3(&args, sizeof(args)); + ASSERT_GE(pid, 0); + + if (pid == 0) { + pid_t pid1, pid2; + int listener, status; + pthread_t thread; + + listener = user_notif_syscall(__NR_dup, SECCOMP_FILTER_FLAG_NEW_LISTENER); + if (listener < 0) + _exit(EXIT_FAILURE); + + if (dup2(listener, 200) != 200) + _exit(EXIT_FAILURE); + + close(listener); + + pid1 = fork(); + if (pid1 < 0) + _exit(EXIT_FAILURE); + + if (pid1 == 0) + _exit(EXIT_SUCCESS); + + pid2 = fork(); + if (pid2 < 0) + _exit(EXIT_FAILURE); + + if (pid2 == 0) + _exit(EXIT_SUCCESS); + + if (pthread_create(&thread, NULL, do_thread, NULL) || + pthread_join(thread, NULL)) + _exit(EXIT_FAILURE); + + if (pthread_create(&thread, NULL, do_thread, NULL) || + pthread_join(thread, NULL)) + _exit(EXIT_FAILURE); + + if (waitpid(pid1, &status, 0) != pid1 || !WIFEXITED(status) || + WEXITSTATUS(status)) + _exit(EXIT_FAILURE); + + if (waitpid(pid2, &status, 0) != pid2 || !WIFEXITED(status) || + WEXITSTATUS(status)) + _exit(EXIT_FAILURE); + + exit(EXIT_SUCCESS); + } + + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); + + /* + * The seccomp filter has become unused so we should be notified once + * the kernel gets around to cleaning up task struct. + */ + pollfd.fd = 200; + pollfd.events = POLLHUP; + + EXPECT_GT(poll(&pollfd, 1, 2000), 0); + EXPECT_GT((pollfd.revents & POLLHUP) ?: 0, 0); +} + +TEST(user_notification_addfd) +{ + pid_t pid; + long ret; + int status, listener, memfd, fd; + struct seccomp_notif_addfd addfd = {}; + struct seccomp_notif_addfd_small small = {}; + struct seccomp_notif_addfd_big big = {}; + struct seccomp_notif req = {}; + struct seccomp_notif_resp resp = {}; + /* 100 ms */ + struct timespec delay = { .tv_nsec = 100000000 }; + + memfd = memfd_create("test", 0); + ASSERT_GE(memfd, 0); + + ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); + ASSERT_EQ(0, ret) { + TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); + } + + /* Check that the basic notification machinery works */ + listener = user_notif_syscall(__NR_getppid, + SECCOMP_FILTER_FLAG_NEW_LISTENER); + ASSERT_GE(listener, 0); + + pid = fork(); + ASSERT_GE(pid, 0); + + if (pid == 0) { + if (syscall(__NR_getppid) != USER_NOTIF_MAGIC) + exit(1); + exit(syscall(__NR_getppid) != USER_NOTIF_MAGIC); + } + + ASSERT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_RECV, &req), 0); + + addfd.srcfd = memfd; + addfd.newfd = 0; + addfd.id = req.id; + addfd.flags = 0x0; + + /* Verify bad newfd_flags cannot be set */ + addfd.newfd_flags = ~O_CLOEXEC; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd), -1); + EXPECT_EQ(errno, EINVAL); + addfd.newfd_flags = O_CLOEXEC; + + /* Verify bad flags cannot be set */ + addfd.flags = 0xff; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd), -1); + EXPECT_EQ(errno, EINVAL); + addfd.flags = 0; + + /* Verify that remote_fd cannot be set without setting flags */ + addfd.newfd = 1; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd), -1); + EXPECT_EQ(errno, EINVAL); + addfd.newfd = 0; + + /* Verify small size cannot be set */ + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD_SMALL, &small), -1); + EXPECT_EQ(errno, EINVAL); + + /* Verify we can't send bits filled in unknown buffer area */ + memset(&big, 0xAA, sizeof(big)); + big.addfd = addfd; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD_BIG, &big), -1); + EXPECT_EQ(errno, E2BIG); + + + /* Verify we can set an arbitrary remote fd */ + fd = ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd); + /* + * The child has fds 0(stdin), 1(stdout), 2(stderr), 3(memfd), + * 4(listener), so the newly allocated fd should be 5. + */ + EXPECT_EQ(fd, 5); + EXPECT_EQ(filecmp(getpid(), pid, memfd, fd), 0); + + /* Verify we can set an arbitrary remote fd with large size */ + memset(&big, 0x0, sizeof(big)); + big.addfd = addfd; + fd = ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD_BIG, &big); + EXPECT_EQ(fd, 6); + + /* Verify we can set a specific remote fd */ + addfd.newfd = 42; + addfd.flags = SECCOMP_ADDFD_FLAG_SETFD; + fd = ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd); + EXPECT_EQ(fd, 42); + EXPECT_EQ(filecmp(getpid(), pid, memfd, fd), 0); + + /* Resume syscall */ + resp.id = req.id; + resp.error = 0; + resp.val = USER_NOTIF_MAGIC; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_SEND, &resp), 0); + + /* + * This sets the ID of the ADD FD to the last request plus 1. The + * notification ID increments 1 per notification. + */ + addfd.id = req.id + 1; + + /* This spins until the underlying notification is generated */ + while (ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd) != -1 && + errno != -EINPROGRESS) + nanosleep(&delay, NULL); + + memset(&req, 0, sizeof(req)); + ASSERT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_RECV, &req), 0); + ASSERT_EQ(addfd.id, req.id); + + resp.id = req.id; + resp.error = 0; + resp.val = USER_NOTIF_MAGIC; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_SEND, &resp), 0); + + /* Wait for child to finish. */ + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); + + close(memfd); +} + +TEST(user_notification_addfd_rlimit) +{ + pid_t pid; + long ret; + int status, listener, memfd; + struct seccomp_notif_addfd addfd = {}; + struct seccomp_notif req = {}; + struct seccomp_notif_resp resp = {}; + const struct rlimit lim = { + .rlim_cur = 0, + .rlim_max = 0, + }; + + memfd = memfd_create("test", 0); + ASSERT_GE(memfd, 0); + + ret = prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0); + ASSERT_EQ(0, ret) { + TH_LOG("Kernel does not support PR_SET_NO_NEW_PRIVS!"); + } + + /* Check that the basic notification machinery works */ + listener = user_notif_syscall(__NR_getppid, + SECCOMP_FILTER_FLAG_NEW_LISTENER); + ASSERT_GE(listener, 0); + + pid = fork(); + ASSERT_GE(pid, 0); + + if (pid == 0) + exit(syscall(__NR_getppid) != USER_NOTIF_MAGIC); + + + ASSERT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_RECV, &req), 0); + + ASSERT_EQ(prlimit(pid, RLIMIT_NOFILE, &lim, NULL), 0); + + addfd.srcfd = memfd; + addfd.newfd_flags = O_CLOEXEC; + addfd.newfd = 0; + addfd.id = req.id; + addfd.flags = 0; + + /* Should probably spot check /proc/sys/fs/file-nr */ + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd), -1); + EXPECT_EQ(errno, EMFILE); + + addfd.newfd = 100; + addfd.flags = SECCOMP_ADDFD_FLAG_SETFD; + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_ADDFD, &addfd), -1); + EXPECT_EQ(errno, EBADF); + + resp.id = req.id; + resp.error = 0; + resp.val = USER_NOTIF_MAGIC; + + EXPECT_EQ(ioctl(listener, SECCOMP_IOCTL_NOTIF_SEND, &resp), 0); + + /* Wait for child to finish. */ + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); + + close(memfd); +} + /* * TODO: * - add microbenchmarks From 4691968ff9f5ec2eed7c321b048045b7ee5ae038 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 4 Aug 2020 15:12:02 -0700 Subject: [PATCH 09/17] Merge tag 'close-range-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux Pull close_range() implementation from Christian Brauner: "This adds the close_range() syscall. It allows to efficiently close a range of file descriptors up to all file descriptors of a calling task. This is coordinated with the FreeBSD folks which have copied our version of this syscall and in the meantime have already merged it in April 2019: https://reviews.freebsd.org/D21627 https://svnweb.freebsd.org/base?view=revision&revision=359836 The syscall originally came up in a discussion around the new mount API and making new file descriptor types cloexec by default. During this discussion, Al suggested the close_range() syscall. First, it helps to close all file descriptors of an exec()ing task. This can be done safely via (quoting Al's example from [1] verbatim): /* that exec is sensitive */ unshare(CLONE_FILES); /* we don't want anything past stderr here */ close_range(3, ~0U); execve(....); The code snippet above is one way of working around the problem that file descriptors are not cloexec by default. This is aggravated by the fact that we can't just switch them over without massively regressing userspace. For a whole class of programs having an in-kernel method of closing all file descriptors is very helpful (e.g. demons, service managers, programming language standard libraries, container managers etc.). Second, it allows userspace to avoid implementing closing all file descriptors by parsing through /proc//fd/* and calling close() on each file descriptor and other hacks. From looking at various large(ish) userspace code bases this or similar patterns are very common in service managers, container runtimes, and programming language runtimes/standard libraries such as Python or Rust. In addition, the syscall will also work for tasks that do not have procfs mounted and on kernels that do not have procfs support compiled in. In such situations the only way to make sure that all file descriptors are closed is to call close() on each file descriptor up to UINT_MAX or RLIMIT_NOFILE, OPEN_MAX trickery. Based on Linus' suggestion close_range() also comes with a new flag CLOSE_RANGE_UNSHARE to more elegantly handle file descriptor dropping right before exec. This would usually be expressed in the sequence: unshare(CLONE_FILES); close_range(3, ~0U); as pointed out by Linus it might be desirable to have this be a part of close_range() itself under a new flag CLOSE_RANGE_UNSHARE which gets especially handy when we're closing all file descriptors above a certain threshold. Test-suite as always included" * tag 'close-range-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux: tests: add CLOSE_RANGE_UNSHARE tests close_range: add CLOSE_RANGE_UNSHARE tests: add close_range() tests arch: wire-up close_range() open: add close_range() --- arch/alpha/kernel/syscalls/syscall.tbl | 1 + arch/arm/tools/syscall.tbl | 1 + arch/arm64/include/asm/unistd32.h | 2 + arch/ia64/kernel/syscalls/syscall.tbl | 1 + arch/m68k/kernel/syscalls/syscall.tbl | 1 + arch/microblaze/kernel/syscalls/syscall.tbl | 1 + arch/mips/kernel/syscalls/syscall_n32.tbl | 1 + arch/mips/kernel/syscalls/syscall_n64.tbl | 1 + arch/mips/kernel/syscalls/syscall_o32.tbl | 1 + arch/parisc/kernel/syscalls/syscall.tbl | 1 + arch/powerpc/kernel/syscalls/syscall.tbl | 1 + arch/s390/kernel/syscalls/syscall.tbl | 1 + arch/sh/kernel/syscalls/syscall.tbl | 1 + arch/sparc/kernel/syscalls/syscall.tbl | 1 + arch/x86/entry/syscalls/syscall_32.tbl | 1 + arch/x86/entry/syscalls/syscall_64.tbl | 1 + arch/xtensa/kernel/syscalls/syscall.tbl | 1 + fs/file.c | 122 +++++++++- fs/open.c | 17 ++ include/linux/fdtable.h | 6 +- include/linux/syscalls.h | 2 + include/uapi/asm-generic/unistd.h | 2 + include/uapi/linux/close_range.h | 9 + kernel/fork.c | 11 +- tools/testing/selftests/Makefile | 1 + tools/testing/selftests/core/.gitignore | 1 + tools/testing/selftests/core/Makefile | 7 + .../testing/selftests/core/close_range_test.c | 227 ++++++++++++++++++ tools/testing/selftests/firmware/fw_namespace | Bin 0 -> 13352 bytes tools/testing/selftests/netfilter/nf-queue | Bin 0 -> 2636080 bytes tools/testing/selftests/ptrace/vmaccess | Bin 0 -> 22584 bytes 31 files changed, 406 insertions(+), 17 deletions(-) create mode 100644 include/uapi/linux/close_range.h create mode 100644 tools/testing/selftests/core/.gitignore create mode 100644 tools/testing/selftests/core/Makefile create mode 100644 tools/testing/selftests/core/close_range_test.c create mode 100755 tools/testing/selftests/firmware/fw_namespace create mode 100644 tools/testing/selftests/netfilter/nf-queue create mode 100755 tools/testing/selftests/ptrace/vmaccess diff --git a/arch/alpha/kernel/syscalls/syscall.tbl b/arch/alpha/kernel/syscalls/syscall.tbl index 5ddd128d4b7ac0..a28fb211881df0 100644 --- a/arch/alpha/kernel/syscalls/syscall.tbl +++ b/arch/alpha/kernel/syscalls/syscall.tbl @@ -475,6 +475,7 @@ 543 common fspick sys_fspick 544 common pidfd_open sys_pidfd_open # 545 reserved for clone3 +546 common close_range sys_close_range 547 common openat2 sys_openat2 548 common pidfd_getfd sys_pidfd_getfd 549 common faccessat2 sys_faccessat2 diff --git a/arch/arm/tools/syscall.tbl b/arch/arm/tools/syscall.tbl index d5cae5ffede0cd..7e8ee4adf2696d 100644 --- a/arch/arm/tools/syscall.tbl +++ b/arch/arm/tools/syscall.tbl @@ -449,6 +449,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 sys_clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/arm64/include/asm/unistd32.h b/arch/arm64/include/asm/unistd32.h index 6d95d0c8bf2f47..c760b9e159f552 100644 --- a/arch/arm64/include/asm/unistd32.h +++ b/arch/arm64/include/asm/unistd32.h @@ -879,6 +879,8 @@ __SYSCALL(__NR_fspick, sys_fspick) __SYSCALL(__NR_pidfd_open, sys_pidfd_open) #define __NR_clone3 435 __SYSCALL(__NR_clone3, sys_clone3) +#define __NR_close_range 436 +__SYSCALL(__NR_close_range, sys_close_range) #define __NR_openat2 437 __SYSCALL(__NR_openat2, sys_openat2) #define __NR_pidfd_getfd 438 diff --git a/arch/ia64/kernel/syscalls/syscall.tbl b/arch/ia64/kernel/syscalls/syscall.tbl index 49e325b604b319..ced9c83e47c979 100644 --- a/arch/ia64/kernel/syscalls/syscall.tbl +++ b/arch/ia64/kernel/syscalls/syscall.tbl @@ -356,6 +356,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open # 435 reserved for clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/m68k/kernel/syscalls/syscall.tbl b/arch/m68k/kernel/syscalls/syscall.tbl index f71b1bbcc1988c..1a4822de72920f 100644 --- a/arch/m68k/kernel/syscalls/syscall.tbl +++ b/arch/m68k/kernel/syscalls/syscall.tbl @@ -435,6 +435,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 __sys_clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/microblaze/kernel/syscalls/syscall.tbl b/arch/microblaze/kernel/syscalls/syscall.tbl index edacc4561f2b3b..a3f4be8e72385d 100644 --- a/arch/microblaze/kernel/syscalls/syscall.tbl +++ b/arch/microblaze/kernel/syscalls/syscall.tbl @@ -441,6 +441,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 sys_clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/mips/kernel/syscalls/syscall_n32.tbl b/arch/mips/kernel/syscalls/syscall_n32.tbl index f777141f52568f..501bc09643bdcb 100644 --- a/arch/mips/kernel/syscalls/syscall_n32.tbl +++ b/arch/mips/kernel/syscalls/syscall_n32.tbl @@ -374,6 +374,7 @@ 433 n32 fspick sys_fspick 434 n32 pidfd_open sys_pidfd_open 435 n32 clone3 __sys_clone3 +436 n32 close_range sys_close_range 437 n32 openat2 sys_openat2 438 n32 pidfd_getfd sys_pidfd_getfd 439 n32 faccessat2 sys_faccessat2 diff --git a/arch/mips/kernel/syscalls/syscall_n64.tbl b/arch/mips/kernel/syscalls/syscall_n64.tbl index da8c76394e178f..391acbf425a0fe 100644 --- a/arch/mips/kernel/syscalls/syscall_n64.tbl +++ b/arch/mips/kernel/syscalls/syscall_n64.tbl @@ -350,6 +350,7 @@ 433 n64 fspick sys_fspick 434 n64 pidfd_open sys_pidfd_open 435 n64 clone3 __sys_clone3 +436 n64 close_range sys_close_range 437 n64 openat2 sys_openat2 438 n64 pidfd_getfd sys_pidfd_getfd 439 n64 faccessat2 sys_faccessat2 diff --git a/arch/mips/kernel/syscalls/syscall_o32.tbl b/arch/mips/kernel/syscalls/syscall_o32.tbl index 13280625d312e9..d28f12f641d365 100644 --- a/arch/mips/kernel/syscalls/syscall_o32.tbl +++ b/arch/mips/kernel/syscalls/syscall_o32.tbl @@ -423,6 +423,7 @@ 433 o32 fspick sys_fspick 434 o32 pidfd_open sys_pidfd_open 435 o32 clone3 __sys_clone3 +436 o32 close_range sys_close_range 437 o32 openat2 sys_openat2 438 o32 pidfd_getfd sys_pidfd_getfd 439 o32 faccessat2 sys_faccessat2 diff --git a/arch/parisc/kernel/syscalls/syscall.tbl b/arch/parisc/kernel/syscalls/syscall.tbl index 5a758fa6ec5242..5d76b8f1519745 100644 --- a/arch/parisc/kernel/syscalls/syscall.tbl +++ b/arch/parisc/kernel/syscalls/syscall.tbl @@ -433,6 +433,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 sys_clone3_wrapper +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/powerpc/kernel/syscalls/syscall.tbl b/arch/powerpc/kernel/syscalls/syscall.tbl index f833a319082247..dd87a782d80ec9 100644 --- a/arch/powerpc/kernel/syscalls/syscall.tbl +++ b/arch/powerpc/kernel/syscalls/syscall.tbl @@ -525,6 +525,7 @@ 435 32 clone3 ppc_clone3 sys_clone3 435 64 clone3 sys_clone3 435 spu clone3 sys_ni_syscall +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/s390/kernel/syscalls/syscall.tbl b/arch/s390/kernel/syscalls/syscall.tbl index bfdcb763395735..effb5195608c2d 100644 --- a/arch/s390/kernel/syscalls/syscall.tbl +++ b/arch/s390/kernel/syscalls/syscall.tbl @@ -438,6 +438,7 @@ 433 common fspick sys_fspick sys_fspick 434 common pidfd_open sys_pidfd_open sys_pidfd_open 435 common clone3 sys_clone3 sys_clone3 +436 common close_range sys_close_range sys_close_range 437 common openat2 sys_openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 sys_faccessat2 diff --git a/arch/sh/kernel/syscalls/syscall.tbl b/arch/sh/kernel/syscalls/syscall.tbl index acc35daa1b7924..96848db9659e92 100644 --- a/arch/sh/kernel/syscalls/syscall.tbl +++ b/arch/sh/kernel/syscalls/syscall.tbl @@ -438,6 +438,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open # 435 reserved for clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/sparc/kernel/syscalls/syscall.tbl b/arch/sparc/kernel/syscalls/syscall.tbl index 8004a276cb74be..d6447d08c9a19a 100644 --- a/arch/sparc/kernel/syscalls/syscall.tbl +++ b/arch/sparc/kernel/syscalls/syscall.tbl @@ -481,6 +481,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open # 435 reserved for clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/x86/entry/syscalls/syscall_32.tbl b/arch/x86/entry/syscalls/syscall_32.tbl index d8f8a1a69ed11f..3f0c6546b47c1d 100644 --- a/arch/x86/entry/syscalls/syscall_32.tbl +++ b/arch/x86/entry/syscalls/syscall_32.tbl @@ -440,6 +440,7 @@ 433 i386 fspick sys_fspick 434 i386 pidfd_open sys_pidfd_open 435 i386 clone3 sys_clone3 +436 i386 close_range sys_close_range 437 i386 openat2 sys_openat2 438 i386 pidfd_getfd sys_pidfd_getfd 439 i386 faccessat2 sys_faccessat2 diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl index 78847b32e1370f..f8637c2c863d99 100644 --- a/arch/x86/entry/syscalls/syscall_64.tbl +++ b/arch/x86/entry/syscalls/syscall_64.tbl @@ -357,6 +357,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 sys_clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/arch/xtensa/kernel/syscalls/syscall.tbl b/arch/xtensa/kernel/syscalls/syscall.tbl index 69d0d73876b310..d216ccba42f702 100644 --- a/arch/xtensa/kernel/syscalls/syscall.tbl +++ b/arch/xtensa/kernel/syscalls/syscall.tbl @@ -406,6 +406,7 @@ 433 common fspick sys_fspick 434 common pidfd_open sys_pidfd_open 435 common clone3 sys_clone3 +436 common close_range sys_close_range 437 common openat2 sys_openat2 438 common pidfd_getfd sys_pidfd_getfd 439 common faccessat2 sys_faccessat2 diff --git a/fs/file.c b/fs/file.c index abb8b7081d7a44..78d33dbe1339f3 100644 --- a/fs/file.c +++ b/fs/file.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,8 @@ #include #include #include +#include +#include unsigned int sysctl_nr_open __read_mostly = 1024*1024; unsigned int sysctl_nr_open_min = BITS_PER_LONG; @@ -264,12 +267,22 @@ static unsigned int count_open_files(struct fdtable *fdt) return i; } +static unsigned int sane_fdtable_size(struct fdtable *fdt, unsigned int max_fds) +{ + unsigned int count; + + count = count_open_files(fdt); + if (max_fds < NR_OPEN_DEFAULT) + max_fds = NR_OPEN_DEFAULT; + return min(count, max_fds); +} + /* * Allocate a new files structure and copy contents from the * passed in files structure. * errorp will be valid only when the returned files_struct is NULL. */ -struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) +struct files_struct *dup_fd(struct files_struct *oldf, unsigned int max_fds, int *errorp) { struct files_struct *newf; struct file **old_fds, **new_fds; @@ -296,7 +309,7 @@ struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) spin_lock(&oldf->file_lock); old_fdt = files_fdtable(oldf); - open_files = count_open_files(old_fdt); + open_files = sane_fdtable_size(old_fdt, max_fds); /* * Check whether we need to allocate a larger fd array and fd set. @@ -327,7 +340,7 @@ struct files_struct *dup_fd(struct files_struct *oldf, int *errorp) */ spin_lock(&oldf->file_lock); old_fdt = files_fdtable(oldf); - open_files = count_open_files(old_fdt); + open_files = sane_fdtable_size(old_fdt, max_fds); } copy_fd_bitmaps(new_fdt, old_fdt, open_files); @@ -620,12 +633,9 @@ void fd_install(unsigned int fd, struct file *file) EXPORT_SYMBOL(fd_install); -/* - * The same warnings as for __alloc_fd()/__fd_install() apply here... - */ -int __close_fd(struct files_struct *files, unsigned fd) +static struct file *pick_file(struct files_struct *files, unsigned fd) { - struct file *file; + struct file *file = NULL; struct fdtable *fdt; spin_lock(&files->file_lock); @@ -637,15 +647,105 @@ int __close_fd(struct files_struct *files, unsigned fd) goto out_unlock; rcu_assign_pointer(fdt->fd[fd], NULL); __put_unused_fd(files, fd); - spin_unlock(&files->file_lock); - return filp_close(file, files); out_unlock: spin_unlock(&files->file_lock); - return -EBADF; + return file; +} + +/* + * The same warnings as for __alloc_fd()/__fd_install() apply here... + */ +int __close_fd(struct files_struct *files, unsigned fd) +{ + struct file *file; + + file = pick_file(files, fd); + if (!file) + return -EBADF; + + return filp_close(file, files); } EXPORT_SYMBOL(__close_fd); /* for ksys_close() */ +/** + * __close_range() - Close all file descriptors in a given range. + * + * @fd: starting file descriptor to close + * @max_fd: last file descriptor to close + * + * This closes a range of file descriptors. All file descriptors + * from @fd up to and including @max_fd are closed. + */ +int __close_range(unsigned fd, unsigned max_fd, unsigned int flags) +{ + unsigned int cur_max; + struct task_struct *me = current; + struct files_struct *cur_fds = me->files, *fds = NULL; + + if (flags & ~CLOSE_RANGE_UNSHARE) + return -EINVAL; + + if (fd > max_fd) + return -EINVAL; + + rcu_read_lock(); + cur_max = files_fdtable(cur_fds)->max_fds; + rcu_read_unlock(); + + /* cap to last valid index into fdtable */ + cur_max--; + + if (flags & CLOSE_RANGE_UNSHARE) { + int ret; + unsigned int max_unshare_fds = NR_OPEN_MAX; + + /* + * If the requested range is greater than the current maximum, + * we're closing everything so only copy all file descriptors + * beneath the lowest file descriptor. + */ + if (max_fd >= cur_max) + max_unshare_fds = fd; + + ret = unshare_fd(CLONE_FILES, max_unshare_fds, &fds); + if (ret) + return ret; + + /* + * We used to share our file descriptor table, and have now + * created a private one, make sure we're using it below. + */ + if (fds) + swap(cur_fds, fds); + } + + max_fd = min(max_fd, cur_max); + while (fd <= max_fd) { + struct file *file; + + file = pick_file(cur_fds, fd++); + if (!file) + continue; + + filp_close(file, cur_fds); + cond_resched(); + } + + if (fds) { + /* + * We're done closing the files we were supposed to. Time to install + * the new file descriptor table and drop the old one. + */ + task_lock(me); + me->files = cur_fds; + task_unlock(me); + put_files_struct(fds); + } + + return 0; +} + /* * variant of __close_fd that gets a ref on the file for later fput. * The caller must ensure that filp_close() called on the file, and then diff --git a/fs/open.c b/fs/open.c index 6cd48a61cda3b9..5e62f18adc5b4b 100644 --- a/fs/open.c +++ b/fs/open.c @@ -1310,6 +1310,23 @@ SYSCALL_DEFINE1(close, unsigned int, fd) return retval; } +/** + * close_range() - Close all file descriptors in a given range. + * + * @fd: starting file descriptor to close + * @max_fd: last file descriptor to close + * @flags: reserved for future extensions + * + * This closes a range of file descriptors. All file descriptors + * from @fd up to and including @max_fd are closed. + * Currently, errors to close a given file descriptor are ignored. + */ +SYSCALL_DEFINE3(close_range, unsigned int, fd, unsigned int, max_fd, + unsigned int, flags) +{ + return __close_range(fd, max_fd, flags); +} + /* * This routine simulates a hangup on the tty, to arrange that users * are given clean terminals at login time. diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h index f07c55ea0c22f1..a32bf47c593e7a 100644 --- a/include/linux/fdtable.h +++ b/include/linux/fdtable.h @@ -22,6 +22,7 @@ * as this is the granularity returned by copy_fdset(). */ #define NR_OPEN_DEFAULT BITS_PER_LONG +#define NR_OPEN_MAX ~0U struct fdtable { unsigned int max_fds; @@ -109,7 +110,7 @@ struct files_struct *get_files_struct(struct task_struct *); void put_files_struct(struct files_struct *fs); void reset_files_struct(struct files_struct *); int unshare_files(struct files_struct **); -struct files_struct *dup_fd(struct files_struct *, int *) __latent_entropy; +struct files_struct *dup_fd(struct files_struct *, unsigned, int *) __latent_entropy; void do_close_on_exec(struct files_struct *); int iterate_fd(struct files_struct *, unsigned, int (*)(const void *, struct file *, unsigned), @@ -121,7 +122,10 @@ extern void __fd_install(struct files_struct *files, unsigned int fd, struct file *file); extern int __close_fd(struct files_struct *files, unsigned int fd); +extern int __close_range(unsigned int fd, unsigned int max_fd, unsigned int flags); extern int __close_fd_get_file(unsigned int fd, struct file **res); +extern int unshare_fd(unsigned long unshare_flags, unsigned int max_fds, + struct files_struct **new_fdp); extern struct kmem_cache *files_cachep; diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index b951a87da9877c..86d97350959153 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -444,6 +444,8 @@ asmlinkage long sys_openat(int dfd, const char __user *filename, int flags, asmlinkage long sys_openat2(int dfd, const char __user *filename, struct open_how *how, size_t size); asmlinkage long sys_close(unsigned int fd); +asmlinkage long sys_close_range(unsigned int fd, unsigned int max_fd, + unsigned int flags); asmlinkage long sys_vhangup(void); /* fs/pipe.c */ diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index f4a01305d9a65c..31001e3323bc70 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -850,6 +850,8 @@ __SYSCALL(__NR_pidfd_open, sys_pidfd_open) #define __NR_clone3 435 __SYSCALL(__NR_clone3, sys_clone3) #endif +#define __NR_close_range 436 +__SYSCALL(__NR_close_range, sys_close_range) #define __NR_openat2 437 __SYSCALL(__NR_openat2, sys_openat2) diff --git a/include/uapi/linux/close_range.h b/include/uapi/linux/close_range.h new file mode 100644 index 00000000000000..6928a9fdee3c45 --- /dev/null +++ b/include/uapi/linux/close_range.h @@ -0,0 +1,9 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +#ifndef _UAPI_LINUX_CLOSE_RANGE_H +#define _UAPI_LINUX_CLOSE_RANGE_H + +/* Unshare the file descriptor table before closing file descriptors. */ +#define CLOSE_RANGE_UNSHARE (1U << 1) + +#endif /* _UAPI_LINUX_CLOSE_RANGE_H */ + diff --git a/kernel/fork.c b/kernel/fork.c index 0134a82837d5ee..caa9c1f27444a0 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1473,7 +1473,7 @@ static int copy_files(unsigned long clone_flags, struct task_struct *tsk) goto out; } - newf = dup_fd(oldf, &error); + newf = dup_fd(oldf, NR_OPEN_MAX, &error); if (!newf) goto out; @@ -2906,14 +2906,15 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp) /* * Unshare file descriptor table if it is being shared */ -static int unshare_fd(unsigned long unshare_flags, struct files_struct **new_fdp) +int unshare_fd(unsigned long unshare_flags, unsigned int max_fds, + struct files_struct **new_fdp) { struct files_struct *fd = current->files; int error = 0; if ((unshare_flags & CLONE_FILES) && (fd && atomic_read(&fd->count) > 1)) { - *new_fdp = dup_fd(fd, &error); + *new_fdp = dup_fd(fd, max_fds, &error); if (!*new_fdp) return error; } @@ -2973,7 +2974,7 @@ int ksys_unshare(unsigned long unshare_flags) err = unshare_fs(unshare_flags, &new_fs); if (err) goto bad_unshare_out; - err = unshare_fd(unshare_flags, &new_fd); + err = unshare_fd(unshare_flags, NR_OPEN_MAX, &new_fd); if (err) goto bad_unshare_cleanup_fs; err = unshare_userns(unshare_flags, &new_cred); @@ -3062,7 +3063,7 @@ int unshare_files(struct files_struct **displaced) struct files_struct *copy = NULL; int error; - error = unshare_fd(CLONE_FILES, ©); + error = unshare_fd(CLONE_FILES, NR_OPEN_MAX, ©); if (error || !copy) { *displaced = NULL; return error; diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile index 1195bd85af386d..5c042b58413d91 100644 --- a/tools/testing/selftests/Makefile +++ b/tools/testing/selftests/Makefile @@ -6,6 +6,7 @@ TARGETS += breakpoints TARGETS += capabilities TARGETS += cgroup TARGETS += clone3 +TARGETS += core TARGETS += cpufreq TARGETS += cpu-hotplug TARGETS += drivers/dma-buf diff --git a/tools/testing/selftests/core/.gitignore b/tools/testing/selftests/core/.gitignore new file mode 100644 index 00000000000000..6e6712ce5817d6 --- /dev/null +++ b/tools/testing/selftests/core/.gitignore @@ -0,0 +1 @@ +close_range_test diff --git a/tools/testing/selftests/core/Makefile b/tools/testing/selftests/core/Makefile new file mode 100644 index 00000000000000..f6f2d6f473c6a8 --- /dev/null +++ b/tools/testing/selftests/core/Makefile @@ -0,0 +1,7 @@ +# SPDX-License-Identifier: GPL-2.0-only +CFLAGS += -g -I../../../../usr/include/ + +TEST_GEN_PROGS := close_range_test + +include ../lib.mk + diff --git a/tools/testing/selftests/core/close_range_test.c b/tools/testing/selftests/core/close_range_test.c new file mode 100644 index 00000000000000..c99b98b0d461fb --- /dev/null +++ b/tools/testing/selftests/core/close_range_test.c @@ -0,0 +1,227 @@ +// SPDX-License-Identifier: GPL-2.0 + +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../kselftest_harness.h" +#include "../clone3/clone3_selftests.h" + +#ifndef __NR_close_range +#define __NR_close_range -1 +#endif + +#ifndef CLOSE_RANGE_UNSHARE +#define CLOSE_RANGE_UNSHARE (1U << 1) +#endif + +static inline int sys_close_range(unsigned int fd, unsigned int max_fd, + unsigned int flags) +{ + return syscall(__NR_close_range, fd, max_fd, flags); +} + +#ifndef ARRAY_SIZE +#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0])) +#endif + +TEST(close_range) +{ + int i, ret; + int open_fds[101]; + + for (i = 0; i < ARRAY_SIZE(open_fds); i++) { + int fd; + + fd = open("/dev/null", O_RDONLY | O_CLOEXEC); + ASSERT_GE(fd, 0) { + if (errno == ENOENT) + XFAIL(return, "Skipping test since /dev/null does not exist"); + } + + open_fds[i] = fd; + } + + EXPECT_EQ(-1, sys_close_range(open_fds[0], open_fds[100], -1)) { + if (errno == ENOSYS) + XFAIL(return, "close_range() syscall not supported"); + } + + EXPECT_EQ(0, sys_close_range(open_fds[0], open_fds[50], 0)); + + for (i = 0; i <= 50; i++) + EXPECT_EQ(-1, fcntl(open_fds[i], F_GETFL)); + + for (i = 51; i <= 100; i++) + EXPECT_GT(fcntl(open_fds[i], F_GETFL), -1); + + /* create a couple of gaps */ + close(57); + close(78); + close(81); + close(82); + close(84); + close(90); + + EXPECT_EQ(0, sys_close_range(open_fds[51], open_fds[92], 0)); + + for (i = 51; i <= 92; i++) + EXPECT_EQ(-1, fcntl(open_fds[i], F_GETFL)); + + for (i = 93; i <= 100; i++) + EXPECT_GT(fcntl(open_fds[i], F_GETFL), -1); + + /* test that the kernel caps and still closes all fds */ + EXPECT_EQ(0, sys_close_range(open_fds[93], open_fds[99], 0)); + + for (i = 93; i <= 99; i++) + EXPECT_EQ(-1, fcntl(open_fds[i], F_GETFL)); + + EXPECT_GT(fcntl(open_fds[i], F_GETFL), -1); + + EXPECT_EQ(0, sys_close_range(open_fds[100], open_fds[100], 0)); + + EXPECT_EQ(-1, fcntl(open_fds[100], F_GETFL)); +} + +TEST(close_range_unshare) +{ + int i, ret, status; + pid_t pid; + int open_fds[101]; + struct clone_args args = { + .flags = CLONE_FILES, + .exit_signal = SIGCHLD, + }; + + for (i = 0; i < ARRAY_SIZE(open_fds); i++) { + int fd; + + fd = open("/dev/null", O_RDONLY | O_CLOEXEC); + ASSERT_GE(fd, 0) { + if (errno == ENOENT) + XFAIL(return, "Skipping test since /dev/null does not exist"); + } + + open_fds[i] = fd; + } + + pid = sys_clone3(&args, sizeof(args)); + ASSERT_GE(pid, 0); + + if (pid == 0) { + ret = sys_close_range(open_fds[0], open_fds[50], + CLOSE_RANGE_UNSHARE); + if (ret) + exit(EXIT_FAILURE); + + for (i = 0; i <= 50; i++) + if (fcntl(open_fds[i], F_GETFL) != -1) + exit(EXIT_FAILURE); + + for (i = 51; i <= 100; i++) + if (fcntl(open_fds[i], F_GETFL) == -1) + exit(EXIT_FAILURE); + + /* create a couple of gaps */ + close(57); + close(78); + close(81); + close(82); + close(84); + close(90); + + ret = sys_close_range(open_fds[51], open_fds[92], + CLOSE_RANGE_UNSHARE); + if (ret) + exit(EXIT_FAILURE); + + for (i = 51; i <= 92; i++) + if (fcntl(open_fds[i], F_GETFL) != -1) + exit(EXIT_FAILURE); + + for (i = 93; i <= 100; i++) + if (fcntl(open_fds[i], F_GETFL) == -1) + exit(EXIT_FAILURE); + + /* test that the kernel caps and still closes all fds */ + ret = sys_close_range(open_fds[93], open_fds[99], + CLOSE_RANGE_UNSHARE); + if (ret) + exit(EXIT_FAILURE); + + for (i = 93; i <= 99; i++) + if (fcntl(open_fds[i], F_GETFL) != -1) + exit(EXIT_FAILURE); + + if (fcntl(open_fds[100], F_GETFL) == -1) + exit(EXIT_FAILURE); + + ret = sys_close_range(open_fds[100], open_fds[100], + CLOSE_RANGE_UNSHARE); + if (ret) + exit(EXIT_FAILURE); + + if (fcntl(open_fds[100], F_GETFL) != -1) + exit(EXIT_FAILURE); + + exit(EXIT_SUCCESS); + } + + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); +} + +TEST(close_range_unshare_capped) +{ + int i, ret, status; + pid_t pid; + int open_fds[101]; + struct clone_args args = { + .flags = CLONE_FILES, + .exit_signal = SIGCHLD, + }; + + for (i = 0; i < ARRAY_SIZE(open_fds); i++) { + int fd; + + fd = open("/dev/null", O_RDONLY | O_CLOEXEC); + ASSERT_GE(fd, 0) { + if (errno == ENOENT) + XFAIL(return, "Skipping test since /dev/null does not exist"); + } + + open_fds[i] = fd; + } + + pid = sys_clone3(&args, sizeof(args)); + ASSERT_GE(pid, 0); + + if (pid == 0) { + ret = sys_close_range(open_fds[0], UINT_MAX, + CLOSE_RANGE_UNSHARE); + if (ret) + exit(EXIT_FAILURE); + + for (i = 0; i <= 100; i++) + if (fcntl(open_fds[i], F_GETFL) != -1) + exit(EXIT_FAILURE); + + exit(EXIT_SUCCESS); + } + + EXPECT_EQ(waitpid(pid, &status, 0), pid); + EXPECT_EQ(true, WIFEXITED(status)); + EXPECT_EQ(0, WEXITSTATUS(status)); +} + +TEST_HARNESS_MAIN diff --git a/tools/testing/selftests/firmware/fw_namespace b/tools/testing/selftests/firmware/fw_namespace new file mode 100755 index 0000000000000000000000000000000000000000..4e73ddf30063d0a4025ef4068053df10bfa8997e GIT binary patch literal 13352 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 sIpfEV?vdcPTOs6)7sIjnH*gRMctz-@YtZHUIzs literal 0 HcmV?d00001 diff --git a/tools/testing/selftests/netfilter/nf-queue b/tools/testing/selftests/netfilter/nf-queue new file mode 100644 index 0000000000000000000000000000000000000000..f3d948ce65a1c3d6faaa2d2c9c2e8e09653e8c6a GIT binary patch literal 2636080 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�% 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

@ls{{y_tGc+DRzI>rh=2S~wJt66dH=dzC3ugs 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⁢lb$Nmj-^7AC&^%BU>xrGaFj^Gi!a!bB=Nh0$t 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
ZBOY% zT>gl@cI@6qjN59t@7_J@?H^A*owh%u^M78~$Kl-Fv86URb(gcJynlT&ZU49CyWz+$ zKKpals4Hi8ob>T|!}5>O_D5xdFFyO+AGkL<K&hWu=&;>uHJXKb%$NG!I0_Ah4%AFUBC9c^_m|VPX2s} zF-smg@~#E_kD~Z9v(&f4-x~kzUhB^K@A$XIZui6G-xrn&`j5_u6W{+w+ncG;Yu!F^ z;{4TK|GH5BUeXcW{>)uF_B-sX>0fTT&iUJnTlG7N|0P|2YtOp8?$&jxZn=5TVS|32 zbbJeKe`A9Bw#0=eJwL1ODfKTtIR5Ef`os%MDZZ_1!cR{R*~6JW=lmUR95VapmmaO7 z-_JizeOu?gp_eXu>T;cv+Fog#d3XyI8z-mr-DvZ`Akb5B)zt#eeU<9w~l?~p&Peeu^TUXQFlYhwQX0Ry+A?LVxb zzCEz&jW0CR-d=mdUccSDVEG*<(e{P9{(t`SSKD7QZE|Lv>$Y8KLDPTb@+pgb{tp=q BUcvwX literal 0 HcmV?d00001 diff --git a/tools/testing/selftests/ptrace/vmaccess b/tools/testing/selftests/ptrace/vmaccess new file mode 100755 index 0000000000000000000000000000000000000000..b52f3fd387f81deeb97464221a789178cc39434c GIT binary patch literal 22584 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 V@{T~Hzw+-d&^bPpj7Dac|3Adz-P8a8 literal 0 HcmV?d00001 From acc05d394e56ed60d03b907a5b1c216e2ba11a20 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 9 Jun 2020 16:11:29 -0700 Subject: [PATCH 10/17] net/compat: Add missing sock updates for SCM_RIGHTS Add missed sock updates to compat path via a new helper, which will be used more in coming patches. (The net/core/scm.c code is left as-is here to assist with -stable backports for the compat path.) Cc: Christoph Hellwig Cc: Sargun Dhillon Cc: Jakub Kicinski Cc: stable@vger.kernel.org Fixes: 48a87cc26c13 ("net: netprio: fd passed in SCM_RIGHTS datagram not set correctly") Fixes: d84295067fc7 ("net: net_cls: fd passed in SCM_RIGHTS datagram not set correctly") Acked-by: Christian Brauner Signed-off-by: Kees Cook --- include/net/sock.h | 4 ++++ net/compat.c | 1 + net/core/sock.c | 21 +++++++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/include/net/sock.h b/include/net/sock.h index 1183507df95bfd..d05a2c3ed3a6bd 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -891,6 +891,8 @@ static inline int sk_memalloc_socks(void) { return static_branch_unlikely(&memalloc_socks_key); } + +void __receive_sock(struct file *file); #else static inline int sk_memalloc_socks(void) @@ -898,6 +900,8 @@ static inline int sk_memalloc_socks(void) return 0; } +static inline void __receive_sock(struct file *file) +{ } #endif static inline gfp_t sk_gfp_mask(const struct sock *sk, gfp_t gfp_mask) diff --git a/net/compat.c b/net/compat.c index 434838bef5f80d..7dc670c8eac507 100644 --- a/net/compat.c +++ b/net/compat.c @@ -309,6 +309,7 @@ void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm) break; } /* Bump the usage count and install the file. */ + __receive_sock(fp[i]); fd_install(new_fd, get_file(fp[i])); } diff --git a/net/core/sock.c b/net/core/sock.c index 2e5b7870e5d35d..378e5cb6ae59aa 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2842,6 +2842,27 @@ int sock_no_mmap(struct file *file, struct socket *sock, struct vm_area_struct * } EXPORT_SYMBOL(sock_no_mmap); +/* + * When a file is received (via SCM_RIGHTS, etc), we must bump the + * various sock-based usage counts. + */ +void __receive_sock(struct file *file) +{ + struct socket *sock; + int error; + + /* + * The resulting value of "error" is ignored here since we only + * need to take action when the file is a socket and testing + * "sock" for NULL is sufficient. + */ + sock = sock_from_file(file, &error); + if (sock) { + sock_update_netprioidx(&sock->sk->sk_cgrp_data); + sock_update_classid(&sock->sk->sk_cgrp_data); + } +} + ssize_t sock_no_sendpage(struct socket *sock, struct page *page, int offset, size_t size, int flags) { ssize_t res; From 49369b3e34439ea9d381221be04c4303153801da Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 9 Jun 2020 16:21:38 -0700 Subject: [PATCH 11/17] pidfd: Add missing sock updates for pidfd_getfd() The sock counting (sock_update_netprioidx() and sock_update_classid()) was missing from pidfd's implementation of received fd installation. Add a call to the new __receive_sock() helper. Cc: Christian Brauner Cc: Christoph Hellwig Cc: Sargun Dhillon Cc: Jakub Kicinski Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: stable@vger.kernel.org Fixes: 8649c322f75c ("pid: Implement pidfd_getfd syscall") Signed-off-by: Kees Cook --- kernel/pid.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kernel/pid.c b/kernel/pid.c index f1496b75716215..ee58530d1acad0 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -42,6 +42,7 @@ #include #include #include +#include struct pid init_struct_pid = { .count = REFCOUNT_INIT(1), @@ -642,10 +643,12 @@ static int pidfd_getfd(struct pid *pid, int fd) } ret = get_unused_fd_flags(O_CLOEXEC); - if (ret < 0) + if (ret < 0) { fput(file); - else + } else { + __receive_sock(file); fd_install(ret, file); + } return ret; } From 7cec66ef173fd6388ff76b37f253c38fff5aa1d1 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 9 Jun 2020 16:11:29 -0700 Subject: [PATCH 12/17] net/scm: Regularize compat handling of scm_detach_fds() Duplicate the cleanups from commit 2618d530dd8b ("net/scm: cleanup scm_detach_fds") into the compat code. Replace open-coded __receive_sock() with a call to the helper. Move the check added in commit 1f466e1f15cf ("net: cleanly handle kernel vs user buffers for ->msg_control") to before the compat call, even though it should be impossible for an in-kernel call to also be compat. Correct the int "flags" argument to unsigned int to match fd_install() and similar APIs. Regularize any remaining differences, including a whitespace issue, a checkpatch warning, and add the check from commit 6900317f5eff ("net, scm: fix PaX detected msg_controllen overflow in scm_detach_fds") which fixed an overflow unique to 64-bit. To avoid confusion when comparing the compat handler to the native handler, just include the same check in the compat handler. Cc: Christoph Hellwig Cc: Sargun Dhillon Cc: Jakub Kicinski Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Acked-by: Christian Brauner Signed-off-by: Kees Cook --- include/net/scm.h | 1 + net/compat.c | 56 +++++++++++++++++++++-------------------------- net/core/scm.c | 27 ++++++++++------------- 3 files changed, 37 insertions(+), 47 deletions(-) diff --git a/include/net/scm.h b/include/net/scm.h index 1ce365f4c25604..581a94d6c613ec 100644 --- a/include/net/scm.h +++ b/include/net/scm.h @@ -37,6 +37,7 @@ struct scm_cookie { #endif }; +int __scm_install_fd(struct file *file, int __user *ufd, unsigned int o_flags); void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm); void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm); int __scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm); diff --git a/net/compat.c b/net/compat.c index 7dc670c8eac507..9614df6d8e7d6b 100644 --- a/net/compat.c +++ b/net/compat.c @@ -281,40 +281,31 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat return 0; } -void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm) +static int scm_max_fds_compat(struct msghdr *msg) { - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control; - int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int); - int fdnum = scm->fp->count; - struct file **fp = scm->fp->fp; - int __user *cmfptr; - int err = 0, i; + if (msg->msg_controllen <= sizeof(struct compat_cmsghdr)) + return 0; + return (msg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int); +} - if (fdnum < fdmax) - fdmax = fdnum; +void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm) +{ + struct compat_cmsghdr __user *cm = + (struct compat_cmsghdr __user *)msg->msg_control; + unsigned int o_flags = (msg->msg_flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; + int fdmax = min_t(int, scm_max_fds_compat(msg), scm->fp->count); + int __user *cmsg_data = CMSG_USER_DATA(cm); + int err = 0, i; - for (i = 0, cmfptr = (int __user *) CMSG_COMPAT_DATA(cm); i < fdmax; i++, cmfptr++) { - int new_fd; - err = security_file_receive(fp[i]); + for (i = 0; i < fdmax; i++) { + err = __scm_install_fd(scm->fp->fp[i], cmsg_data + i, o_flags); if (err) break; - err = get_unused_fd_flags(MSG_CMSG_CLOEXEC & kmsg->msg_flags - ? O_CLOEXEC : 0); - if (err < 0) - break; - new_fd = err; - err = put_user(new_fd, cmfptr); - if (err) { - put_unused_fd(new_fd); - break; - } - /* Bump the usage count and install the file. */ - __receive_sock(fp[i]); - fd_install(new_fd, get_file(fp[i])); } if (i > 0) { int cmlen = CMSG_COMPAT_LEN(i * sizeof(int)); + err = put_user(SOL_SOCKET, &cm->cmsg_level); if (!err) err = put_user(SCM_RIGHTS, &cm->cmsg_type); @@ -322,16 +313,19 @@ void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm) err = put_user(cmlen, &cm->cmsg_len); if (!err) { cmlen = CMSG_COMPAT_SPACE(i * sizeof(int)); - kmsg->msg_control += cmlen; - kmsg->msg_controllen -= cmlen; + if (msg->msg_controllen < cmlen) + cmlen = msg->msg_controllen; + msg->msg_control += cmlen; + msg->msg_controllen -= cmlen; } } - if (i < fdnum) - kmsg->msg_flags |= MSG_CTRUNC; + + if (i < scm->fp->count || (scm->fp->count && fdmax <= 0)) + msg->msg_flags |= MSG_CTRUNC; /* - * All of the files that fit in the message have had their - * usage counts incremented, so we just free the list. + * All of the files that fit in the message have had their usage counts + * incremented, so we just free the list. */ __scm_destroy(scm); } diff --git a/net/core/scm.c b/net/core/scm.c index 875df1c2989db6..44f03213dcabf9 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -280,9 +280,8 @@ void put_cmsg_scm_timestamping(struct msghdr *msg, struct scm_timestamping_inter } EXPORT_SYMBOL(put_cmsg_scm_timestamping); -static int __scm_install_fd(struct file *file, int __user *ufd, int o_flags) +int __scm_install_fd(struct file *file, int __user *ufd, unsigned int o_flags) { - struct socket *sock; int new_fd; int error; @@ -300,12 +299,8 @@ static int __scm_install_fd(struct file *file, int __user *ufd, int o_flags) return error; } - /* Bump the usage count and install the file. */ - sock = sock_from_file(file, &error); - if (sock) { - sock_update_netprioidx(&sock->sk->sk_cgrp_data); - sock_update_classid(&sock->sk->sk_cgrp_data); - } + /* Bump the sock usage counts, if any. */ + __receive_sock(file); fd_install(new_fd, get_file(file)); return 0; } @@ -319,29 +314,29 @@ static int scm_max_fds(struct msghdr *msg) void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) { - struct cmsghdr __user *cm - = (__force struct cmsghdr __user*)msg->msg_control; - int o_flags = (msg->msg_flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; + struct cmsghdr __user *cm = + (__force struct cmsghdr __user *)msg->msg_control; + unsigned int o_flags = (msg->msg_flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; int fdmax = min_t(int, scm_max_fds(msg), scm->fp->count); int __user *cmsg_data = CMSG_USER_DATA(cm); int err = 0, i; + /* no use for FD passing from kernel space callers */ + if (WARN_ON_ONCE(!msg->msg_control_is_user)) + return; + if (msg->msg_flags & MSG_CMSG_COMPAT) { scm_detach_fds_compat(msg, scm); return; } - /* no use for FD passing from kernel space callers */ - if (WARN_ON_ONCE(!msg->msg_control_is_user)) - return; - for (i = 0; i < fdmax; i++) { err = __scm_install_fd(scm->fp->fp[i], cmsg_data + i, o_flags); if (err) break; } - if (i > 0) { + if (i > 0) { int cmlen = CMSG_LEN(i * sizeof(int)); err = put_user(SOL_SOCKET, &cm->cmsg_level); From 34f2d930838252baa915e808cf73994aaf93b241 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Wed, 10 Jun 2020 08:20:05 -0700 Subject: [PATCH 13/17] fs: Move __scm_install_fd() to __receive_fd() In preparation for users of the "install a received file" logic outside of net/ (pidfd and seccomp), relocate and rename __scm_install_fd() from net/core/scm.c to __receive_fd() in fs/file.c, and provide a wrapper named receive_fd_user(), as future patches will change the interface to __receive_fd(). Additionally add a comment to fd_install() as a counterpoint to how __receive_fd() interacts with fput(). Cc: Alexander Viro Cc: "David S. Miller" Cc: Jakub Kicinski Cc: Dmitry Kadashev Cc: Jens Axboe Cc: Arnd Bergmann Cc: Sargun Dhillon Cc: Ido Schimmel Cc: Ioana Ciornei Cc: linux-fsdevel@vger.kernel.org Cc: netdev@vger.kernel.org Reviewed-by: Sargun Dhillon Acked-by: Christian Brauner Signed-off-by: Kees Cook --- fs/file.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ include/linux/file.h | 8 ++++++++ include/net/scm.h | 1 - net/compat.c | 2 +- net/core/scm.c | 27 +-------------------------- 5 files changed, 54 insertions(+), 28 deletions(-) diff --git a/fs/file.c b/fs/file.c index 78d33dbe1339f3..f496bdaba9e52c 100644 --- a/fs/file.c +++ b/fs/file.c @@ -626,6 +626,10 @@ void __fd_install(struct files_struct *files, unsigned int fd, rcu_read_unlock_sched(); } +/* + * This consumes the "file" refcount, so callers should treat it + * as if they had called fput(file). + */ void fd_install(unsigned int fd, struct file *file) { __fd_install(current->files, fd, file); @@ -1031,6 +1035,46 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags) return err; } +/** + * __receive_fd() - Install received file into file descriptor table + * + * @file: struct file that was received from another process + * @ufd: __user pointer to write new fd number to + * @o_flags: the O_* flags to apply to the new fd entry + * + * Installs a received file into the file descriptor table, with appropriate + * checks and count updates. Writes the fd number to userspace. + * + * This helper handles its own reference counting of the incoming + * struct file. + * + * Returns -ve on error. + */ +int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags) +{ + int new_fd; + int error; + + error = security_file_receive(file); + if (error) + return error; + + new_fd = get_unused_fd_flags(o_flags); + if (new_fd < 0) + return new_fd; + + error = put_user(new_fd, ufd); + if (error) { + put_unused_fd(new_fd); + return error; + } + + /* Bump the sock usage counts, if any. */ + __receive_sock(file); + fd_install(new_fd, get_file(file)); + return 0; +} + static int ksys_dup3(unsigned int oldfd, unsigned int newfd, int flags) { int err = -EBADF; diff --git a/include/linux/file.h b/include/linux/file.h index 122f80084a3efa..b14ff2ffd0bdd7 100644 --- a/include/linux/file.h +++ b/include/linux/file.h @@ -91,6 +91,14 @@ extern void put_unused_fd(unsigned int fd); extern void fd_install(unsigned int fd, struct file *file); +extern int __receive_fd(struct file *file, int __user *ufd, + unsigned int o_flags); +static inline int receive_fd_user(struct file *file, int __user *ufd, + unsigned int o_flags) +{ + return __receive_fd(file, ufd, o_flags); +} + extern void flush_delayed_fput(void); extern void __fput_sync(struct file *); diff --git a/include/net/scm.h b/include/net/scm.h index 581a94d6c613ec..1ce365f4c25604 100644 --- a/include/net/scm.h +++ b/include/net/scm.h @@ -37,7 +37,6 @@ struct scm_cookie { #endif }; -int __scm_install_fd(struct file *file, int __user *ufd, unsigned int o_flags); void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm); void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm); int __scm_send(struct socket *sock, struct msghdr *msg, struct scm_cookie *scm); diff --git a/net/compat.c b/net/compat.c index 9614df6d8e7d6b..6d7c47759c131f 100644 --- a/net/compat.c +++ b/net/compat.c @@ -298,7 +298,7 @@ void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm) int err = 0, i; for (i = 0; i < fdmax; i++) { - err = __scm_install_fd(scm->fp->fp[i], cmsg_data + i, o_flags); + err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags); if (err) break; } diff --git a/net/core/scm.c b/net/core/scm.c index 44f03213dcabf9..67c166a7820dfb 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -280,31 +280,6 @@ void put_cmsg_scm_timestamping(struct msghdr *msg, struct scm_timestamping_inter } EXPORT_SYMBOL(put_cmsg_scm_timestamping); -int __scm_install_fd(struct file *file, int __user *ufd, unsigned int o_flags) -{ - int new_fd; - int error; - - error = security_file_receive(file); - if (error) - return error; - - new_fd = get_unused_fd_flags(o_flags); - if (new_fd < 0) - return new_fd; - - error = put_user(new_fd, ufd); - if (error) { - put_unused_fd(new_fd); - return error; - } - - /* Bump the sock usage counts, if any. */ - __receive_sock(file); - fd_install(new_fd, get_file(file)); - return 0; -} - static int scm_max_fds(struct msghdr *msg) { if (msg->msg_controllen <= sizeof(struct cmsghdr)) @@ -331,7 +306,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) } for (i = 0; i < fdmax; i++) { - err = __scm_install_fd(scm->fp->fp[i], cmsg_data + i, o_flags); + err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags); if (err) break; } From 3cc7fe4a5f5290641eb9cd485ff1d7fa28e027ef Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Wed, 10 Jun 2020 20:47:45 -0700 Subject: [PATCH 14/17] fs: Add receive_fd() wrapper for __receive_fd() For both pidfd and seccomp, the __user pointer is not used. Update __receive_fd() to make writing to ufd optional via a NULL check. However, for the receive_fd_user() wrapper, ufd is NULL checked so an -EFAULT can be returned to avoid changing the SCM_RIGHTS interface behavior. Add new wrapper receive_fd() for pidfd and seccomp that does not use the ufd argument. For the new helper, the allocated fd needs to be returned on success. Update the existing callers to handle it. Cc: Alexander Viro Cc: linux-fsdevel@vger.kernel.org Reviewed-by: Sargun Dhillon Acked-by: Christian Brauner Signed-off-by: Kees Cook --- fs/file.c | 17 ++++++++++------- include/linux/file.h | 7 +++++++ net/compat.c | 2 +- net/core/scm.c | 2 +- 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/fs/file.c b/fs/file.c index f496bdaba9e52c..91a24bedb79c03 100644 --- a/fs/file.c +++ b/fs/file.c @@ -1043,12 +1043,13 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags) * @o_flags: the O_* flags to apply to the new fd entry * * Installs a received file into the file descriptor table, with appropriate - * checks and count updates. Writes the fd number to userspace. + * checks and count updates. Optionally writes the fd number to userspace, if + * @ufd is non-NULL. * * This helper handles its own reference counting of the incoming * struct file. * - * Returns -ve on error. + * Returns newly install fd or -ve on error. */ int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags) { @@ -1063,16 +1064,18 @@ int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags) if (new_fd < 0) return new_fd; - error = put_user(new_fd, ufd); - if (error) { - put_unused_fd(new_fd); - return error; + if (ufd) { + error = put_user(new_fd, ufd); + if (error) { + put_unused_fd(new_fd); + return error; + } } /* Bump the sock usage counts, if any. */ __receive_sock(file); fd_install(new_fd, get_file(file)); - return 0; + return new_fd; } static int ksys_dup3(unsigned int oldfd, unsigned int newfd, int flags) diff --git a/include/linux/file.h b/include/linux/file.h index b14ff2ffd0bdd7..d9fee9f5c8daf0 100644 --- a/include/linux/file.h +++ b/include/linux/file.h @@ -9,6 +9,7 @@ #include #include #include +#include struct file; @@ -96,8 +97,14 @@ extern int __receive_fd(struct file *file, int __user *ufd, static inline int receive_fd_user(struct file *file, int __user *ufd, unsigned int o_flags) { + if (ufd == NULL) + return -EFAULT; return __receive_fd(file, ufd, o_flags); } +static inline int receive_fd(struct file *file, unsigned int o_flags) +{ + return __receive_fd(file, NULL, o_flags); +} extern void flush_delayed_fput(void); extern void __fput_sync(struct file *); diff --git a/net/compat.c b/net/compat.c index 6d7c47759c131f..77f3a0e98fd0d4 100644 --- a/net/compat.c +++ b/net/compat.c @@ -299,7 +299,7 @@ void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm) for (i = 0; i < fdmax; i++) { err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags); - if (err) + if (err < 0) break; } diff --git a/net/core/scm.c b/net/core/scm.c index 67c166a7820dfb..8156d4fb8a3966 100644 --- a/net/core/scm.c +++ b/net/core/scm.c @@ -307,7 +307,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm) for (i = 0; i < fdmax; i++) { err = receive_fd_user(scm->fp->fp[i], cmsg_data + i, o_flags); - if (err) + if (err < 0) break; } From 65f1e9f7bb8079b61c5b316d03bbd3d45f1f9541 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Tue, 9 Jun 2020 16:21:38 -0700 Subject: [PATCH 15/17] pidfd: Replace open-coded receive_fd() Replace the open-coded version of receive_fd() with a call to the new helper. Thanks to Vamshi K Sthambamkadi for catching a missed fput() in an earlier version of this patch. Cc: Christoph Hellwig Cc: Jakub Kicinski Cc: netdev@vger.kernel.org Cc: linux-kernel@vger.kernel.org Reviewed-by: Sargun Dhillon Acked-by: Christian Brauner Signed-off-by: Kees Cook --- kernel/pid.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/kernel/pid.c b/kernel/pid.c index ee58530d1acad0..da5aea5f04fab8 100644 --- a/kernel/pid.c +++ b/kernel/pid.c @@ -636,19 +636,8 @@ static int pidfd_getfd(struct pid *pid, int fd) if (IS_ERR(file)) return PTR_ERR(file); - ret = security_file_receive(file); - if (ret) { - fput(file); - return ret; - } - - ret = get_unused_fd_flags(O_CLOEXEC); - if (ret < 0) { - fput(file); - } else { - __receive_sock(file); - fd_install(ret, file); - } + ret = receive_fd(file, O_CLOEXEC); + fput(file); return ret; } From 66942016b88c1407f25166159b8667e94aa78fb0 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Wed, 10 Jun 2020 08:46:58 -0700 Subject: [PATCH 16/17] fs: Expand __receive_fd() to accept existing fd Expand __receive_fd() with support for replace_fd() for the coming seccomp "addfd" ioctl(). Add new wrapper receive_fd_replace() for the new behavior and update existing wrappers to retain old behavior. Thanks to Colin Ian King for pointing out an uninitialized variable exposure in an earlier version of this patch. Cc: Alexander Viro Cc: Dmitry Kadashev Cc: Jens Axboe Cc: Arnd Bergmann Cc: linux-fsdevel@vger.kernel.org Reviewed-by: Sargun Dhillon Acked-by: Christian Brauner Signed-off-by: Kees Cook --- fs/file.c | 25 +++++++++++++++++++------ include/linux/file.h | 10 +++++++--- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/fs/file.c b/fs/file.c index 91a24bedb79c03..4cb9ef4d857197 100644 --- a/fs/file.c +++ b/fs/file.c @@ -1038,6 +1038,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags) /** * __receive_fd() - Install received file into file descriptor table * + * @fd: fd to install into (if negative, a new fd will be allocated) * @file: struct file that was received from another process * @ufd: __user pointer to write new fd number to * @o_flags: the O_* flags to apply to the new fd entry @@ -1051,7 +1052,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags) * * Returns newly install fd or -ve on error. */ -int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags) +int __receive_fd(int fd, struct file *file, int __user *ufd, unsigned int o_flags) { int new_fd; int error; @@ -1060,21 +1061,33 @@ int __receive_fd(struct file *file, int __user *ufd, unsigned int o_flags) if (error) return error; - new_fd = get_unused_fd_flags(o_flags); - if (new_fd < 0) - return new_fd; + if (fd < 0) { + new_fd = get_unused_fd_flags(o_flags); + if (new_fd < 0) + return new_fd; + } else { + new_fd = fd; + } if (ufd) { error = put_user(new_fd, ufd); if (error) { - put_unused_fd(new_fd); + if (fd < 0) + put_unused_fd(new_fd); return error; } } + if (fd < 0) { + fd_install(new_fd, get_file(file)); + } else { + error = replace_fd(new_fd, file, o_flags); + if (error) + return error; + } + /* Bump the sock usage counts, if any. */ __receive_sock(file); - fd_install(new_fd, get_file(file)); return new_fd; } diff --git a/include/linux/file.h b/include/linux/file.h index d9fee9f5c8daf0..225982792fa20e 100644 --- a/include/linux/file.h +++ b/include/linux/file.h @@ -92,18 +92,22 @@ extern void put_unused_fd(unsigned int fd); extern void fd_install(unsigned int fd, struct file *file); -extern int __receive_fd(struct file *file, int __user *ufd, +extern int __receive_fd(int fd, struct file *file, int __user *ufd, unsigned int o_flags); static inline int receive_fd_user(struct file *file, int __user *ufd, unsigned int o_flags) { if (ufd == NULL) return -EFAULT; - return __receive_fd(file, ufd, o_flags); + return __receive_fd(-1, file, ufd, o_flags); } static inline int receive_fd(struct file *file, unsigned int o_flags) { - return __receive_fd(file, NULL, o_flags); + return __receive_fd(-1, file, NULL, o_flags); +} +static inline int receive_fd_replace(int fd, struct file *file, unsigned int o_flags) +{ + return __receive_fd(fd, file, NULL, o_flags); } extern void flush_delayed_fput(void); From 9f6f4f2aeae0a993e12b27642d9d7e234db526d1 Mon Sep 17 00:00:00 2001 From: Kees Cook Date: Fri, 7 Aug 2020 10:53:54 -0700 Subject: [PATCH 17/17] net/scm: Fix typo in SCM_RIGHTS compat refactoring When refactoring the SCM_RIGHTS code, I accidentally mis-merged my native/compat diffs, which entirely broke using SCM_RIGHTS in compat mode. Use the correct helper. Reported-by: Christian Zigotzky Link: https://lists.ozlabs.org/pipermail/linuxppc-dev/2020-August/216156.html Reported-by: "Alex Xu (Hello71)" Link: https://lore.kernel.org/lkml/1596812929.lz7fuo8r2w.none@localhost/ Suggested-by: Thadeu Lima de Souza Cascardo Fixes: c0029de50982 ("net/scm: Regularize compat handling of scm_detach_fds()") Tested-by: Alex Xu (Hello71) Acked-by: Thadeu Lima de Souza Cascardo Signed-off-by: Kees Cook --- net/compat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/compat.c b/net/compat.c index 77f3a0e98fd0d4..4c5426c167e3ec 100644 --- a/net/compat.c +++ b/net/compat.c @@ -294,7 +294,7 @@ void scm_detach_fds_compat(struct msghdr *msg, struct scm_cookie *scm) (struct compat_cmsghdr __user *)msg->msg_control; unsigned int o_flags = (msg->msg_flags & MSG_CMSG_CLOEXEC) ? O_CLOEXEC : 0; int fdmax = min_t(int, scm_max_fds_compat(msg), scm->fp->count); - int __user *cmsg_data = CMSG_USER_DATA(cm); + int __user *cmsg_data = CMSG_COMPAT_DATA(cm); int err = 0, i; for (i = 0; i < fdmax; i++) {