KEYS: fix length validation in keyctl_pkey_params_get_2()
authorEric Biggers <ebiggers@google.com>
Thu, 13 Jan 2022 20:04:54 +0000 (12:04 -0800)
committerJarkko Sakkinen <jarkko@kernel.org>
Sun, 20 Feb 2022 23:22:06 +0000 (00:22 +0100)
commit7bf7254ca15b2cfecd8520489f14e25c71874d89
tree78a777dafabd69021836cc7d89c052fe0744c2b3
parentabbcefc9643774ca1738c95334b0091bb726757e
KEYS: fix length validation in keyctl_pkey_params_get_2()

In many cases, keyctl_pkey_params_get_2() is validating the user buffer
lengths against the wrong algorithm properties.  Fix it to check against
the correct properties.

Probably this wasn't noticed before because for all asymmetric keys of
the "public_key" subtype, max_data_size == max_sig_size == max_enc_size
== max_dec_size.  However, this isn't necessarily true for the
"asym_tpm" subtype (it should be, but it's not strictly validated).  Of
course, future key types could have different values as well.

Fixes: 00d60fd3b932 ("KEYS: Provide keyctls to drive the new key type ops for asymmetric keys [ver #2]")
Cc: <stable@vger.kernel.org> # v4.20+
Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org>
Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
security/keys/keyctl_pkey.c