KEYS: fix parsing invalid pkey info string
diff mbox series

Message ID 20181103173035.23974-1-ebiggers@kernel.org
State New
Headers show
Series
  • KEYS: fix parsing invalid pkey info string
Related show

Commit Message

Eric Biggers Nov. 3, 2018, 5:30 p.m. UTC
From: Eric Biggers <ebiggers@google.com>

We need to check the return value of match_token() for Opt_err (-1)
before doing anything with it.

Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com
Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]")
Signed-off-by: Eric Biggers <ebiggers@google.com>
---
 security/keys/keyctl_pkey.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Eric Biggers Nov. 28, 2018, 11:20 p.m. UTC | #1
On Sat, Nov 03, 2018 at 10:30:35AM -0700, Eric Biggers wrote:
> From: Eric Biggers <ebiggers@google.com>
> 
> We need to check the return value of match_token() for Opt_err (-1)
> before doing anything with it.
> 
> Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com
> Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]")
> Signed-off-by: Eric Biggers <ebiggers@google.com>
> ---
>  security/keys/keyctl_pkey.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c
> index 783978842f13a..987fac8051d70 100644
> --- a/security/keys/keyctl_pkey.c
> +++ b/security/keys/keyctl_pkey.c
> @@ -50,6 +50,8 @@ static int keyctl_pkey_params_parse(struct kernel_pkey_params *params)
>  		if (*p == '\0' || *p == ' ' || *p == '\t')
>  			continue;
>  		token = match_token(p, param_keys, args);
> +		if (token == Opt_err)
> +			return -EINVAL;
>  		if (__test_and_set_bit(token, &token_mask))
>  			return -EINVAL;
>  		q = args[0].from;
> -- 
> 2.19.1

Ping.  David, are you planning to apply this?

- Eric
Eric Biggers Dec. 6, 2018, 6:26 p.m. UTC | #2
On Wed, Nov 28, 2018 at 03:20:20PM -0800, Eric Biggers wrote:
> On Sat, Nov 03, 2018 at 10:30:35AM -0700, Eric Biggers wrote:
> > From: Eric Biggers <ebiggers@google.com>
> > 
> > We need to check the return value of match_token() for Opt_err (-1)
> > before doing anything with it.
> > 
> > Reported-by: syzbot+a22e0dc07567662c50bc@syzkaller.appspotmail.com
> > Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]")
> > Signed-off-by: Eric Biggers <ebiggers@google.com>
> > ---
> >  security/keys/keyctl_pkey.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c
> > index 783978842f13a..987fac8051d70 100644
> > --- a/security/keys/keyctl_pkey.c
> > +++ b/security/keys/keyctl_pkey.c
> > @@ -50,6 +50,8 @@ static int keyctl_pkey_params_parse(struct kernel_pkey_params *params)
> >  		if (*p == '\0' || *p == ' ' || *p == '\t')
> >  			continue;
> >  		token = match_token(p, param_keys, args);
> > +		if (token == Opt_err)
> > +			return -EINVAL;
> >  		if (__test_and_set_bit(token, &token_mask))
> >  			return -EINVAL;
> >  		q = args[0].from;
> > -- 
> > 2.19.1
> 
> Ping.  David, are you planning to apply this?
> 
> - Eric
> 

Ping.

Patch
diff mbox series

diff --git a/security/keys/keyctl_pkey.c b/security/keys/keyctl_pkey.c
index 783978842f13a..987fac8051d70 100644
--- a/security/keys/keyctl_pkey.c
+++ b/security/keys/keyctl_pkey.c
@@ -50,6 +50,8 @@  static int keyctl_pkey_params_parse(struct kernel_pkey_params *params)
 		if (*p == '\0' || *p == ' ' || *p == '\t')
 			continue;
 		token = match_token(p, param_keys, args);
+		if (token == Opt_err)
+			return -EINVAL;
 		if (__test_and_set_bit(token, &token_mask))
 			return -EINVAL;
 		q = args[0].from;