2
0
mirror of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git synced 2025-09-04 20:19:47 +08:00
linux/arch/s390/crypto
Eric Biggers 6827938026 crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2
Commit 88c02b3f79 ("s390/sha3: Support sha3 performance enhancements")
added the field s390_sha_ctx::first_message_part and made it be used by
s390_sha_update() (now s390_sha_update_blocks()).  At the time,
s390_sha_update() was used by all the s390 SHA-1, SHA-2, and SHA-3
algorithms.  However, only the initialization functions for SHA-3 were
updated, leaving SHA-1 and SHA-2 using first_message_part uninitialized.

This could cause e.g. the function code CPACF_KIMD_SHA_512 |
CPACF_KIMD_NIP to be used instead of just CPACF_KIMD_SHA_512.  This
apparently was harmless, as the SHA-1 and SHA-2 function codes ignore
CPACF_KIMD_NIP; it is recognized only by the SHA-3 function codes
(https://lore.kernel.org/r/73477fe9-a1dc-4e38-98a6-eba9921e8afa@linux.ibm.com/).
Therefore, this bug was found only when first_message_part was later
converted to a boolean and UBSAN detected its uninitialized use.
Regardless, let's fix this by just initializing to zero.

Note: in 6.16, we need to patch SHA-1, SHA-384, and SHA-512.  In 6.15
and earlier, we'll also need to patch SHA-224 and SHA-256, as they
hadn't yet been librarified (which incidentally fixed this bug).

Fixes: 88c02b3f79 ("s390/sha3: Support sha3 performance enhancements")
Cc: stable@vger.kernel.org
Reported-by: Ingo Franzki <ifranzki@linux.ibm.com>
Closes: https://lore.kernel.org/r/12740696-595c-4604-873e-aefe8b405fbf@linux.ibm.com
Acked-by: Heiko Carstens <hca@linux.ibm.com>
Link: https://lore.kernel.org/r/20250703172316.7914-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
2025-07-03 10:27:26 -07:00
..
aes_s390.c crypto: scatterwalk - simplify map and unmap calling convention 2025-03-21 17:33:38 +08:00
arch_random.c s390/archrandom: add missing header include 2023-01-10 14:39:08 +01:00
des_s390.c s390/cpufeature: rework to allow more than only hwcap bits 2022-07-19 16:18:49 +02:00
ghash_s390.c crypto: s390/ghash - Use API partial block handling 2025-04-23 11:33:47 +08:00
hmac_s390.c crypto: s390/hmac - Use API partial block handling 2025-05-05 18:20:46 +08:00
Kconfig crypto: s390/sha256 - implement library instead of shash 2025-05-05 18:20:43 +08:00
Makefile crypto: s390/sha256 - implement library instead of shash 2025-05-05 18:20:43 +08:00
paes_s390.c s390/crypto: Extend protected key conversion retry loop 2025-05-21 12:02:27 +02:00
prng.c s390/crypto: Switch over to sysfs_emit() 2024-10-25 16:03:24 +02:00
sha1_s390.c crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2 2025-07-03 10:27:26 -07:00
sha3_256_s390.c crypto: s390/sha3 - Use API partial block handling 2025-04-23 15:52:46 +08:00
sha3_512_s390.c crypto: s390/sha3 - Use API partial block handling 2025-04-23 15:52:46 +08:00
sha512_s390.c crypto: s390/sha - Fix uninitialized variable in SHA-1 and SHA-2 2025-07-03 10:27:26 -07:00
sha_common.c crypto: s390/sha512 - Use API partial block handling 2025-04-23 15:52:47 +08:00
sha.h crypto: s390/sha512 - Fix sha512 state size 2025-04-30 10:49:20 +08:00