[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <4df50e95-6173-4ed1-9d08-3c1c4abab23f@gmail.com>
Date: Tue, 25 Jan 2022 16:34:12 -0500
From: Demi Marie Obenour <demiobenour@...il.com>
To: Paul Moore <paul@...l-moore.com>,
Stephen Smalley <stephen.smalley.work@...il.com>,
Eric Paris <eparis@...isplace.org>
Cc: Demi Marie Obenour <demiobenour@...il.com>,
selinux@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [PATCH] SELinux: Always allow FIOCLEX and FIONCLEX
These ioctls are equivalent to fcntl(fd, F_SETFD, flags), which SELinux
always allows too. Furthermore, a failed FIOCLEX could result in a file
descriptor being leaked to a process that should not have access to it.
Signed-off-by: Demi Marie Obenour <demiobenour@...il.com>
---
security/selinux/hooks.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 5b6895e4fc29..8f3b2f15c1f3 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -3728,6 +3728,11 @@ static int selinux_file_ioctl(struct file *file, unsigned int cmd,
error = file_has_perm(cred, file, FILE__GETATTR);
break;
+ /* must always succeed */
+ case FIOCLEX:
+ case FIONCLEX:
+ break;
+
case FS_IOC_SETFLAGS:
case FS_IOC_SETVERSION:
error = file_has_perm(cred, file, FILE__SETATTR);
--
Sincerely,
Demi Marie Obenour
Powered by blists - more mailing lists