From patchwork Sat Sep 22 00:18:40 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Casey Schaufler X-Patchwork-Id: 10612387 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 23509913 for ; Mon, 24 Sep 2018 12:30:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 12C9D29EAB for ; Mon, 24 Sep 2018 12:30:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 06E8D29EB2; Mon, 24 Sep 2018 12:30:51 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-4.3 required=2.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,NO_RDNS_DOTCOM_HELO,RCVD_IN_DNSWL_MED,T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from uhil19pa11.eemsg.mail.mil (uhil19pa11.eemsg.mail.mil [214.24.21.84]) (using TLSv1.2 with cipher DHE-RSA-AES256-SHA256 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 03C7829EAB for ; Mon, 24 Sep 2018 12:30:49 +0000 (UTC) X-EEMSG-check-008: 339321369|UHIL19PA11_EEMSG_MP9.csd.disa.mil Received: from emsm-gh1-uea11.ncsc.mil ([214.29.60.3]) by uhil19pa11.eemsg.mail.mil with ESMTP; 24 Sep 2018 12:30:49 +0000 X-IronPort-AV: E=Sophos;i="5.54,297,1534809600"; d="scan'208";a="18575381" IronPort-PHdr: 9a23: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 X-IPAS-Result: A2BQAgB72Khb/wHyM5BaHAEBAQQBAQcEAQGBVIIIA4EIXCiMaItJhGaUCoFfKhMBhQSDFiE3FQEDAQEBAQEBAgFsHAyCNSSCYAMDAQIkEwYBAQwgDAIDCQEBQAgIAwEtFAERBgEHBQYCAQEBGASDAIFqAxUDlw2KHIFqM4J1AQEFgQQBAXWCMAOCUwgXimEXggCBEieCPYR5ARIBhVUijkAxjhAJggyOFx1ZiDuGGI57h2YiZHFNIxU7gmyCGQwXg0aKHAFVT3sBAYl9gj0BAQ Received: from tarius.tycho.ncsc.mil ([144.51.242.1]) by emsm-gh1-uea11.NCSC.MIL with ESMTP; 24 Sep 2018 12:30:48 +0000 Received: from prometheus.infosec.tycho.ncsc.mil (prometheus.infosec.tycho.ncsc.mil [192.168.25.40]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w8OCUl9S029504; Mon, 24 Sep 2018 08:30:47 -0400 Received: from tarius.tycho.ncsc.mil (tarius.infosec.tycho.ncsc.mil [144.51.242.1]) by prometheus.infosec.tycho.ncsc.mil (8.15.2/8.15.2) with ESMTP id w8M0NIK7018341 for ; Fri, 21 Sep 2018 20:23:18 -0400 Received: from goalie.tycho.ncsc.mil (goalie.infosec.tycho.ncsc.mil [144.51.242.250]) by tarius.tycho.ncsc.mil (8.14.4/8.14.4) with ESMTP id w8M0NI0k009983 for ; Fri, 21 Sep 2018 20:23:18 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A1A3AAAxi6Vbly0bGNZbHAEBAQQBAQcEAQGBVIIIgWcog3OIdItLhGaVcIR3AkKDBCE3FQEDAQEBAQEBAhQBAQEBAQYYBkyFRQMDIwQZAQE4DyUCJgICRRIGAQwGAgEBgx2BagMVA5ghihxvezOCdQEBBYEEAQF1gj4DglEIF3SJZReCAIESJ4I9iC2CNSKOPjGODQmCDI4XHVmIO4YUjneHYoF3TSMVgyeCGQwOCYNGihwBVU+OVAEB X-IPAS-Result: A1A3AAAxi6Vbly0bGNZbHAEBAQQBAQcEAQGBVIIIgWcog3OIdItLhGaVcIR3AkKDBCE3FQEDAQEBAQEBAhQBAQEBAQYYBkyFRQMDIwQZAQE4DyUCJgICRRIGAQwGAgEBgx2BagMVA5ghihxvezOCdQEBBYEEAQF1gj4DglEIF3SJZReCAIESJ4I9iC2CNSKOPjGODQmCDI4XHVmIO4YUjneHYoF3TSMVgyeCGQwOCYNGihwBVU+OVAEB X-IronPort-AV: E=Sophos;i="5.54,287,1534824000"; d="scan'208";a="375861" Received: from emsm-gh1-uea10.ncsc.mil ([214.29.60.34]) by goalie.tycho.ncsc.mil with ESMTP; 21 Sep 2018 20:22:53 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AzAAC8iqVbly0bGNZbHAEBAQQBAQcEAQGBVIIIgWcog3OIdItLhGaVcIR3AkKDBCE3FQEDAQEBAQEBAgETAQEBAQEGGAZMDII1JIJgAwMjBBkBATgPJQImAgJFEgYBDAYCAQGDHYFqAxUDmCCKHG97M4J1AQEFgQQBAXWCPgOCUQgXdIllF4IAgRIngj2ILYI1Io4+MY4NCYIMjhcdWYg7hhSOd4digXdNIxWDJ4IZDA4Jg0aKHAFVT45UAQE X-IPAS-Result: A0AzAAC8iqVbly0bGNZbHAEBAQQBAQcEAQGBVIIIgWcog3OIdItLhGaVcIR3AkKDBCE3FQEDAQEBAQEBAgETAQEBAQEGGAZMDII1JIJgAwMjBBkBATgPJQImAgJFEgYBDAYCAQGDHYFqAxUDmCCKHG97M4J1AQEFgQQBAXWCPgOCUQgXdIllF4IAgRIngj2ILYI1Io4+MY4NCYIMjhcdWYg7hhSOd4digXdNIxWDJ4IZDA4Jg0aKHAFVT45UAQE X-IronPort-AV: E=Sophos;i="5.54,287,1534809600"; d="scan'208";a="16120281" X-IronPort-Outbreak-Status: No, level 0, Unknown - Unknown Received: from updc3cpa06.eemsg.mail.mil ([214.24.27.45]) by EMSM-GH1-UEA10.NCSC.MIL with ESMTP; 22 Sep 2018 00:22:52 +0000 X-EEMSG-check-005: 0 X-EEMSG-check-006: 000-001;d644bb32-eeee-46e6-bb3b-6704a0a784a2 Authentication-Results: upbd19pa05.eemsg.mail.mil; spf=None smtp.pra=casey@schaufler-ca.com; spf=None smtp.mailfrom=casey@schaufler-ca.com; spf=None smtp.helo=postmaster@sonic303-31.consmr.mail.bf2.yahoo.com; dkim=pass (signature verified) header.i=@yahoo.com X-EEMSG-check-008: 326152348|UPBD19PA05_EEMSG_MP5.csd.disa.mil X-EEMSG-SBRS: 3.5 X-EEMSG-ORIG-IP: 74.6.131.230 X-EEMSG-check-002: true X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AhAQD5iaVbh+aDBkpbHQEBBQEHBQGBVINvKINziHSQMZVwhHcCQoMEGQYGMxUBAwEBAQEBAQEBARMBAQEIDQkIGw4jDII1JIJgAwMjBBkBATgPJQImAgJFEgYBDAYCAQGDHYFqAxWYIIocb3szgnUBAQWBBAEBdYI+A4JRCBd0iXyCAIESJ4I9iC2CNSKOPjGODQmCDI4XHVmIO4YUjneHYoF3TSMVgyeCGQwOCYNGihwBVR8wjlQBAQ X-IPAS-Result: A0AhAQD5iaVbh+aDBkpbHQEBBQEHBQGBVINvKINziHSQMZVwhHcCQoMEGQYGMxUBAwEBAQEBAQEBARMBAQEIDQkIGw4jDII1JIJgAwMjBBkBATgPJQImAgJFEgYBDAYCAQGDHYFqAxWYIIocb3szgnUBAQWBBAEBdYI+A4JRCBd0iXyCAIESJ4I9iC2CNSKOPjGODQmCDI4XHVmIO4YUjneHYoF3TSMVgyeCGQwOCYNGihwBVR8wjlQBAQ Received: from sonic303-31.consmr.mail.bf2.yahoo.com ([74.6.131.230]) by upbd19pa05.eemsg.mail.mil with ESMTP; 22 Sep 2018 00:22:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1537575766; bh=Iu+tSavlo7t7q7n3Olg0VNVdtV/eWmeqFaZXnw9uMGQ=; h=Subject:To:References:From:Date:In-Reply-To:From:Subject; b=XCXtLMHlb1lXs3t2Byw4S2DsvMgkepJKuUweTsROByhGo6mI8jCYN7jfCTbOcIUFiAPt2XERCPSjTyznHXsfQeriN/gylduK2N7fkI6Q2d1c0yd1lZkYCAx9qecjHt03GF1sHEKp5/5ATYyoS/uYGW2zkI3sASZFMlvmc3TUNi1r+2UhgwO0PmFOGOqD1FNg1wMLrLFWfvTHcCDkaGnJr2eeYq07Os4p264O8LR+rMUKL9IDw2BSq6syGfXd3EyweCckusujaMjOfFlxsssstqV7cY3qlWd+xgsS2H8NF+JVrjojiHgGrmpgaPPuf8edFGfek1nyzl4i9X++tqtXGw== X-YMail-OSG: 7VFgqxcVM1nm.9gcjV9vMlvcbGz1c7AIl.2HQJE1rgxu1zXuBiemUHvs4iEI.Tn A7PsuiS_org-- Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.bf2.yahoo.com with HTTP; Sat, 22 Sep 2018 00:22:46 +0000 Received: from c-67-169-65-224.hsd1.ca.comcast.net (EHLO [192.168.0.102]) ([67.169.65.224]) by smtp425.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 0841caf00ea79cb44958c74ce7010a8d; Sat, 22 Sep 2018 00:18:45 +0000 (UTC) To: LSM , James Morris , SE Linux , LKLM , John Johansen , Kees Cook , Tetsuo Handa , Paul Moore , Stephen Smalley , "linux-fsdevel@vger.kernel.org" , Alexey Dobriyan , =?utf-8?q?Micka=C3=ABl_Sala=C3=BCn?= , Salvatore Mesoraca References: X-EEMSG-check-009: 444-444 From: Casey Schaufler Message-ID: Date: Fri, 21 Sep 2018 17:18:40 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-Mailman-Approved-At: Mon, 24 Sep 2018 08:26:06 -0400 Subject: [PATCH v4 09/19] SELinux: Abstract use of file security blob X-BeenThere: selinux@tycho.nsa.gov X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Security-Enhanced Linux \(SELinux\) mailing list" List-Post: List-Help: Errors-To: selinux-bounces@tycho.nsa.gov Sender: "Selinux" X-Virus-Scanned: ClamAV using ClamSMTP Don't use the file->f_security pointer directly. Provide a helper function that provides the security blob pointer. Signed-off-by: Casey Schaufler Reviewed-by: Kees Cook --- security/selinux/hooks.c | 18 +++++++++--------- security/selinux/include/objsec.h | 5 +++++ 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index b629cc302088..641a8ce726ff 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -396,7 +396,7 @@ static int file_alloc_security(struct file *file) static void file_free_security(struct file *file) { - struct file_security_struct *fsec = file->f_security; + struct file_security_struct *fsec = selinux_file(file); file->f_security = NULL; kmem_cache_free(file_security_cache, fsec); } @@ -1879,7 +1879,7 @@ static int file_has_perm(const struct cred *cred, struct file *file, u32 av) { - struct file_security_struct *fsec = file->f_security; + struct file_security_struct *fsec = selinux_file(file); struct inode *inode = file_inode(file); struct common_audit_data ad; u32 sid = cred_sid(cred); @@ -2223,7 +2223,7 @@ static int selinux_binder_transfer_file(struct task_struct *from, struct file *file) { u32 sid = task_sid(to); - struct file_security_struct *fsec = file->f_security; + struct file_security_struct *fsec = selinux_file(file); struct dentry *dentry = file->f_path.dentry; struct inode_security_struct *isec; struct common_audit_data ad; @@ -3535,7 +3535,7 @@ static int selinux_revalidate_file_permission(struct file *file, int mask) static int selinux_file_permission(struct file *file, int mask) { struct inode *inode = file_inode(file); - struct file_security_struct *fsec = file->f_security; + struct file_security_struct *fsec = selinux_file(file); struct inode_security_struct *isec; u32 sid = current_sid(); @@ -3570,7 +3570,7 @@ static int ioctl_has_perm(const struct cred *cred, struct file *file, u32 requested, u16 cmd) { struct common_audit_data ad; - struct file_security_struct *fsec = file->f_security; + struct file_security_struct *fsec = selinux_file(file); struct inode *inode = file_inode(file); struct inode_security_struct *isec; struct lsm_ioctlop_audit ioctl; @@ -3822,7 +3822,7 @@ static void selinux_file_set_fowner(struct file *file) { struct file_security_struct *fsec; - fsec = file->f_security; + fsec = selinux_file(file); fsec->fown_sid = current_sid(); } @@ -3837,7 +3837,7 @@ static int selinux_file_send_sigiotask(struct task_struct *tsk, /* struct fown_struct is never outside the context of a struct file */ file = container_of(fown, struct file, f_owner); - fsec = file->f_security; + fsec = selinux_file(file); if (!signum) perm = signal_to_av(SIGIO); /* as per send_sigio_to_task */ @@ -3861,7 +3861,7 @@ static int selinux_file_open(struct file *file) struct file_security_struct *fsec; struct inode_security_struct *isec; - fsec = file->f_security; + fsec = selinux_file(file); isec = inode_security(file_inode(file)); /* * Save inode label and policy sequence number @@ -4000,7 +4000,7 @@ static int selinux_kernel_module_from_file(struct file *file) ad.type = LSM_AUDIT_DATA_FILE; ad.u.file = file; - fsec = file->f_security; + fsec = selinux_file(file); if (sid != fsec->sid) { rc = avc_has_perm(&selinux_state, sid, fsec->sid, SECCLASS_FD, FD__USE, &ad); diff --git a/security/selinux/include/objsec.h b/security/selinux/include/objsec.h index ad511c3d2eb7..cad8b765f6dd 100644 --- a/security/selinux/include/objsec.h +++ b/security/selinux/include/objsec.h @@ -165,4 +165,9 @@ static inline struct task_security_struct *selinux_cred(const struct cred *cred) return cred->security; } +static inline struct file_security_struct *selinux_file(const struct file *file) +{ + return file->f_security; +} + #endif /* _SELINUX_OBJSEC_H_ */