Roberto Sassu
7f3bb75a04
KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
...
[ Upstream commit c3d03e8e35e005e1a614e51bb59053eeb5857f76 ]
Commit ac4e97abce ("scatterlist: sg_set_buf() argument must be in linear
mapping") checks that both the signature and the digest reside in the
linear mapping area.
However, more recently commit ba14a194a4 ("fork: Add generic vmalloced
stack support") made it possible to move the stack in the vmalloc area,
which is not contiguous, and thus not suitable for sg_set_buf() which needs
adjacent pages.
Always make a copy of the signature and digest in the same buffer used to
store the key and its parameters, and pass them to sg_init_one(). Prefer it
to conditionally doing the copy if necessary, to keep the code simple. The
buffer allocated with kmalloc() is in the linear mapping area.
Cc: stable@vger.kernel.org # 4.9.x
Fixes: ba14a194a4 ("fork: Add generic vmalloced stack support")
Link: https://lore.kernel.org/linux-integrity/Y4pIpxbjBdajymBJ@sol.localdomain/
Suggested-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Reviewed-by: Eric Biggers <ebiggers@google.com>
Tested-by: Stefan Berger <stefanb@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-06-21 15:44:08 +02:00
..
asymmetric_keys
KEYS: asymmetric: Copy sig and digest in public_key_verify_signature()
2023-06-21 15:44:08 +02:00
async_tx
842.c
ablkcipher.c
acompress.c
adiantum.c
aead.c
aegis.h
aegis128-core.c
aegis128-neon-inner.c
aegis128-neon.c
aes_generic.c
aes_ti.c
af_alg.c
crypto: af_alg - avoid undefined behavior accessing salg_name
2020-12-30 11:51:00 +01:00
ahash.c
akcipher.c
crypto: akcipher - default implementation for setting a private key
2022-10-26 13:22:45 +02:00
algapi.c
crypto: algapi - Avoid spurious modprobe on LOADED
2020-06-17 16:40:30 +02:00
algboss.c
crypto: algboss - don't wait during notifier callback
2020-06-24 17:50:51 +02:00
algif_aead.c
crypto: algif_aead - Do not set MAY_BACKLOG on the async path
2020-10-29 09:57:29 +01:00
algif_hash.c
crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
2020-07-09 09:37:52 +02:00
algif_rng.c
algif_skcipher.c
crypto: algif_skcipher - EBUSY on aio should be an error
2020-10-29 09:57:30 +01:00
ansi_cprng.c
anubis.c
api.c
crypto: api - check for ERR pointers in crypto_destroy_tfm()
2021-05-11 14:04:05 +02:00
arc4.c
authenc.c
crypto: authenc - Fix sleep in atomic context in decrypt_tail
2022-04-15 14:18:04 +02:00
authencesn.c
blkcipher.c
blowfish_common.c
blowfish_generic.c
camellia_generic.c
cast5_generic.c
cast6_generic.c
crypto: x86 - Regularize glue function prototypes
2021-03-20 10:39:47 +01:00
cast_common.c
cbc.c
ccm.c
cfb.c
chacha20poly1305.c
chacha_generic.c
cipher.c
cmac.c
compress.c
crc32_generic.c
crc32c_generic.c
crct10dif_common.c
crct10dif_generic.c
cryptd.c
crypto: cryptd - Protect per-CPU resource by disabling BH.
2022-06-14 18:11:41 +02:00
crypto_engine.c
crypto_null.c
crypto_user_base.c
crypto_user_stat.c
ctr.c
cts.c
deflate.c
des_generic.c
dh.c
dh_helper.c
drbg.c
crypto: drbg - Only fail when jent is unavailable in FIPS mode
2023-05-17 11:35:42 +02:00
ecb.c
ecc.c
ecc.h
ecc_curve_defs.h
ecdh.c
crypto: ecdh - avoid buffer overflow in ecdh_set_secret()
2021-01-12 20:16:17 +01:00
ecdh_helper.c
crypto: ecdh_helper - Ensure 'len >= secret.len' in decode_key()
2021-03-04 10:26:25 +01:00
echainiv.c
ecrdsa.c
crypto: ecrdsa - Fix incorrect use of vli_cmp
2022-06-06 08:33:50 +02:00
ecrdsa_defs.h
ecrdsa_params.asn1
ecrdsa_pub_key.asn1
essiv.c
crypto: essiv - Handle EBUSY correctly
2023-03-11 16:43:39 +01:00
fcrypt.c
fips.c
gcm.c
gf128mul.c
ghash-generic.c
hash_info.c
hmac.c
internal.h
jitterentropy-kcapi.c
jitterentropy.c
Kconfig
crypto: ecc - fix CRYPTO_DEFAULT_RNG dependency
2021-11-17 09:48:36 +01:00
keywrap.c
khazad.c
kpp.c
lrw.c
gcc-10: avoid shadowing standard library 'free()' in crypto
2020-05-20 08:20:29 +02:00
lz4.c
lz4hc.c
lzo-rle.c
lzo.c
Makefile
md4.c
md5.c
memneq.c
michael_mic.c
nhpoly1305.c
ofb.c
pcbc.c
pcrypt.c
crypto: pcrypt - Delay write to padata->info
2021-11-17 09:48:40 +01:00
poly1305_generic.c
proc.c
ripemd.h
rmd128.c
rmd160.c
rmd256.c
rmd320.c
rng.c
crypto: rng - fix crypto_rng_reset() refcounting when !CRYPTO_STATS
2021-05-11 14:04:15 +02:00
rsa-pkcs1pad.c
crypto: rsa-pkcs1pad - Use akcipher_request_complete
2023-03-11 16:43:41 +01:00
rsa.c
rsa_helper.c
rsaprivkey.asn1
rsapubkey.asn1
salsa20_generic.c
scatterwalk.c
scompress.c
seed.c
seqiv.c
crypto: seqiv - Handle EBUSY correctly
2023-03-11 16:43:39 +01:00
serpent_generic.c
crypto: x86 - Regularize glue function prototypes
2021-03-20 10:39:47 +01:00
sha1_generic.c
sha3_generic.c
sha256_generic.c
sha512_generic.c
shash.c
crypto: shash - avoid comparing pointers to exported functions under CFI
2021-07-14 16:53:13 +02:00
simd.c
skcipher.c
sm3_generic.c
sm4_generic.c
streebog_generic.c
tcrypt.c
crypto: tcrypt - Fix multibuffer skcipher speed test mem leak
2023-01-18 11:41:19 +01:00
tcrypt.h
tea.c
testmgr.c
testmgr.h
tgr192.c
twofish_common.c
twofish_generic.c
vmac.c
wp512.c
xcbc.c
xor.c
xts.c
gcc-10: avoid shadowing standard library 'free()' in crypto
2020-05-20 08:20:29 +02:00
xxhash_generic.c
zstd.c