All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christian Brauner <christian.brauner@ubuntu.com>
To: Casey Schaufler <casey@schaufler-ca.com>
Cc: Christian Brauner <christian@brauner.io>,
	Paul Moore <paul@paul-moore.com>,
	James Morris <jmorris@namei.org>,
	Linux Security Module list 
	<linux-security-module@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	syzbot <syzbot+d1e3b1d92d25abf97943@syzkaller.appspotmail.com>,
	David Howells <dhowells@redhat.com>,
	linux-fsdevel <linux-fsdevel@vger.kernel.org>
Subject: Re: [PATCH] LSM: general protection fault in legacy_parse_param
Date: Tue, 12 Oct 2021 12:32:43 +0200	[thread overview]
Message-ID: <20211012103243.xumzerhvhklqrovj@wittgenstein> (raw)
In-Reply-To: <018a9bb4-accb-c19a-5b0a-fde22f4bc822@schaufler-ca.com>

On Mon, Oct 11, 2021 at 03:40:22PM -0700, Casey Schaufler wrote:
> The usual LSM hook "bail on fail" scheme doesn't work for cases where
> a security module may return an error code indicating that it does not
> recognize an input.  In this particular case Smack sees a mount option
> that it recognizes, and returns 0. A call to a BPF hook follows, which
> returns -ENOPARAM, which confuses the caller because Smack has processed
> its data.
> 
> Reported-by: syzbot+d1e3b1d92d25abf97943@syzkaller.appspotmail.com
> Signed-off-by: Casey Schaufler <casey@schaufler-ca.com>
> ---

Thanks!
Note, I think that we still have the SELinux issue we discussed in the
other thread:

	rc = selinux_add_opt(opt, param->string, &fc->security);
	if (!rc) {
		param->string = NULL;
		rc = 1;
	}

SELinux returns 1 not the expected 0. Not sure if that got fixed or is
queued-up for -next. In any case, this here seems correct independent of
that:

Acked-by: Christian Brauner <christian.brauner@ubuntu.com>

>  security/security.c | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/security/security.c b/security/security.c
> index 09533cbb7221..3cf0faaf1c5b 100644
> --- a/security/security.c
> +++ b/security/security.c
> @@ -885,7 +885,19 @@ int security_fs_context_dup(struct fs_context *fc, struct fs_context *src_fc)
>  
>  int security_fs_context_parse_param(struct fs_context *fc, struct fs_parameter *param)
>  {
> -	return call_int_hook(fs_context_parse_param, -ENOPARAM, fc, param);
> +	struct security_hook_list *hp;
> +	int trc;
> +	int rc = -ENOPARAM;
> +
> +	hlist_for_each_entry(hp, &security_hook_heads.fs_context_parse_param,
> +			     list) {
> +		trc = hp->hook.fs_context_parse_param(fc, param);
> +		if (trc == 0)
> +			rc = 0;
> +		else if (trc != -ENOPARAM)
> +			return trc;
> +	}
> +	return rc;
>  }
>  
>  int security_sb_alloc(struct super_block *sb)
> 
> 

  reply	other threads:[~2021-10-12 10:32 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <018a9bb4-accb-c19a-5b0a-fde22f4bc822.ref@schaufler-ca.com>
2021-10-11 22:40 ` [PATCH] LSM: general protection fault in legacy_parse_param Casey Schaufler
2021-10-12 10:32   ` Christian Brauner [this message]
2021-10-12 14:27     ` Casey Schaufler
2022-01-25 22:18       ` Paul Moore
2022-01-25 23:30         ` Casey Schaufler
2022-01-25 23:36           ` Paul Moore
2022-01-26  7:24         ` Christian Brauner
2022-01-26 22:37           ` Paul Moore
2022-01-27 16:51         ` [PATCH v2] " Casey Schaufler
2022-01-27 17:33           ` James Morris
2022-01-28  1:44             ` Paul Moore
2022-01-28  2:33               ` Casey Schaufler
2022-01-28  8:59           ` Christian Brauner

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=20211012103243.xumzerhvhklqrovj@wittgenstein \
    --to=christian.brauner@ubuntu.com \
    --cc=casey@schaufler-ca.com \
    --cc=christian@brauner.io \
    --cc=dhowells@redhat.com \
    --cc=jmorris@namei.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-security-module@vger.kernel.org \
    --cc=paul@paul-moore.com \
    --cc=syzbot+d1e3b1d92d25abf97943@syzkaller.appspotmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.