Re: [PATCH v20 05/23] net: Prepare UDS for security module stacking
From: Paul Moore <paul@paul-moore.com>
Date: 2020-09-04 20:09:00
Also in:
selinux
On Wed, Aug 26, 2020 at 11:07 AM Casey Schaufler [off-list ref] wrote:
Change the data used in UDS SO_PEERSEC processing from a secid to a more general struct lsmblob. Update the security_socket_getpeersec_dgram() interface to use the lsmblob. There is a small amount of scaffolding code that will come out when the security_secid_to_secctx() code is brought in line with the lsmblob. Signed-off-by: Casey Schaufler <casey@schaufler-ca.com> --- include/linux/security.h | 7 +++++-- include/net/af_unix.h | 2 +- include/net/scm.h | 8 +++++--- net/ipv4/ip_sockglue.c | 8 +++++--- net/unix/af_unix.c | 6 +++--- security/security.c | 18 +++++++++++++++--- 6 files changed, 34 insertions(+), 15 deletions(-)
...
quoted hunk ↗ jump to hunk
diff --git a/include/net/af_unix.h b/include/net/af_unix.h index f42fdddecd41..a86da0cb5ec1 100644 --- a/include/net/af_unix.h +++ b/include/net/af_unix.h@@ -36,7 +36,7 @@ struct unix_skb_parms { kgid_t gid; struct scm_fp_list *fp; /* Passed files */ #ifdef CONFIG_SECURITY_NETWORK - u32 secid; /* Security ID */ + struct lsmblob lsmblob; /* Security LSM data */
As mentioned in a previous revision, I remain concerned that this is going to become a problem due to the size limit on unix_skb_parms. I would need to redo the math to be certain, but if I recall correctly this would limit us to five LSMs assuming both that we don't need to grow the per-LSM size of lsmblob *and* the netdev folks don't decide to add more fields to the unix_skb_parms. I lost track of that earlier discussion so I'm not sure where it ended up, but if there is a viable alternative it might be a good idea to pursue it. -- paul moore www.paul-moore.com