linux-security-module.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mimi Zohar <zohar@linux.ibm.com>
To: Roberto Sassu <roberto.sassu@huaweicloud.com>,
	dmitry.kasatkin@gmail.com, paul@paul-moore.com,
	jmorris@namei.org, serge@hallyn.com,
	stephen.smalley.work@gmail.com, eparis@parisplace.org,
	casey@schaufler-ca.com
Cc: linux-integrity@vger.kernel.org,
	linux-security-module@vger.kernel.org, selinux@vger.kernel.org,
	reiserfs-devel@vger.kernel.org, linux-kernel@vger.kernel.org,
	keescook@chromium.org, nicolas.bouchinet@clip-os.org,
	Roberto Sassu <roberto.sassu@huawei.com>,
	ocfs2-devel@oss.oracle.com
Subject: Re: [PATCH v4 2/5] security: Rewrite security_old_inode_init_security()
Date: Thu, 17 Nov 2022 08:03:23 -0500	[thread overview]
Message-ID: <3dc4f389ead98972cb7d09ef285a0065decb0ad0.camel@linux.ibm.com> (raw)
In-Reply-To: <20221110094639.3086409-3-roberto.sassu@huaweicloud.com>

Hi Roberto,

On Thu, 2022-11-10 at 10:46 +0100, Roberto Sassu wrote:
> From: Roberto Sassu <roberto.sassu@huawei.com>
> 
> Rewrite security_old_inode_init_security() to call
> security_inode_init_security() before making changes to support multiple
> LSMs providing xattrs. Do it so that the required changes are done only in
> one place.

Only security_inode_init_security() has support for EVM.   Making
security_old_inode_init_security() a wrapper for
security_inode_init_security() could result in security.evm extended
attributes being created that previously weren't created.

In fact ocfs2 defines ocfs2_init_security_get() as a wrapper for both
the old and new inode_init_security calls based on the caller's
preference.   Only mknod and symlink seem to use the old function. 
Wondering why do they differentiate between callers?  (Cc'ing the ocfs2
mailing list as they're affected by this change.)

"[PATCH v4 1/5] reiserfs: Add missing calls to
reiserfs_security_free()"  fixed a memory leak.  I couldn't tell if
there was a similar memory leak in ocfs2, the only other user of
security_old_inode_init_security().

As ocfs2 already defines initxattrs, that leaves only reiserfs missing
initxattrs().  A better, cleaner solution would be to define one.

thanks,

Mimi

> 
> Define the security_initxattrs() callback and pass it to
> security_inode_init_security() as argument, to obtain the first xattr
> provided by LSMs.
> 
> This behavior is a bit different from the current one. Before this patch
> calling call_int_hook() could cause multiple LSMs to provide an xattr,
> since call_int_hook() does not stop when an LSM returns zero. The caller of
> security_old_inode_init_security() receives the last xattr set. The pointer
> of the xattr value of previous LSMs is lost, causing memory leaks.
> 
> However, in practice, this scenario does not happen as the only in-tree
> LSMs providing an xattr at inode creation time are SELinux and Smack, which
> are mutually exclusive.
> 
> Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>b


  reply	other threads:[~2022-11-17 13:04 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-10  9:46 [PATCH v4 0/5] evm: Prepare for moving to the LSM infrastructure Roberto Sassu
2022-11-10  9:46 ` [PATCH v4 1/5] reiserfs: Add missing calls to reiserfs_security_free() Roberto Sassu
2022-11-16 21:03   ` Mimi Zohar
2022-11-21 23:41   ` Paul Moore
2022-11-22  8:11     ` Roberto Sassu
2022-11-22 22:47       ` Paul Moore
2022-11-10  9:46 ` [PATCH v4 2/5] security: Rewrite security_old_inode_init_security() Roberto Sassu
2022-11-17 13:03   ` Mimi Zohar [this message]
2022-11-18  9:04     ` Roberto Sassu
2022-11-21  9:45     ` Roberto Sassu
2022-11-21 20:54       ` Mimi Zohar
2022-11-21 23:55         ` Paul Moore
2022-11-22  8:29           ` Roberto Sassu
2022-11-10  9:46 ` [PATCH v4 3/5] security: Allow all LSMs to provide xattrs for inode_init_security hook Roberto Sassu
2022-11-17 16:05   ` Mimi Zohar
2022-11-17 17:18     ` Casey Schaufler
2022-11-17 17:24       ` Mimi Zohar
2022-11-17 17:40         ` Casey Schaufler
2022-11-17 18:07           ` Mimi Zohar
2022-11-18  9:32       ` Roberto Sassu
2022-11-18 15:33         ` Mimi Zohar
2022-11-18  9:14     ` Roberto Sassu
2022-11-18 15:10       ` Mimi Zohar
2022-11-18 17:31         ` Casey Schaufler
2022-11-21 13:29           ` Roberto Sassu
2022-11-21 20:58             ` Mimi Zohar
2022-11-18 17:15       ` Casey Schaufler
2022-11-10  9:46 ` [PATCH v4 4/5] evm: Align evm_inode_init_security() definition with LSM infrastructure Roberto Sassu
2022-11-17 17:07   ` Mimi Zohar
2022-11-18  9:30     ` Roberto Sassu
2022-11-18 14:45       ` Mimi Zohar
2022-11-18 15:11       ` Mimi Zohar
2022-11-10  9:46 ` [PATCH v4 5/5] evm: Support multiple LSMs providing an xattr Roberto Sassu
2022-11-17 17:09   ` Mimi Zohar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3dc4f389ead98972cb7d09ef285a0065decb0ad0.camel@linux.ibm.com \
    --to=zohar@linux.ibm.com \
    --cc=casey@schaufler-ca.com \
    --cc=dmitry.kasatkin@gmail.com \
    --cc=eparis@parisplace.org \
    --cc=jmorris@namei.org \
    --cc=keescook@chromium.org \
    --cc=linux-integrity@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=nicolas.bouchinet@clip-os.org \
    --cc=ocfs2-devel@oss.oracle.com \
    --cc=paul@paul-moore.com \
    --cc=reiserfs-devel@vger.kernel.org \
    --cc=roberto.sassu@huawei.com \
    --cc=roberto.sassu@huaweicloud.com \
    --cc=selinux@vger.kernel.org \
    --cc=serge@hallyn.com \
    --cc=stephen.smalley.work@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).