mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-08-09 06:14:34 +02:00
Remove sun4i_ss_rng, as it is insecure and unused:
- It has multiple vulnerabilities. sun4i_ss_prng_seed() is missing
locking and has a buffer overflow. sun4i_ss_prng_generate() fails to
fill the entire buffer with cryptographic random bytes, because it
rounds the destination length down and also doesn't actually wait for
the hardware to be ready before pulling bytes from it.
- No user of this code is known. It's usable only theoretically via the
"rng" algorithm type of AF_ALG. But userspace actually just uses the
actual Linux RNG (/dev/random etc) instead. And rng_algs don't
contribute entropy to the actual Linux RNG either. (This may have
been confused with hwrng, which does contribute entropy.)
The sun4i_ss_prng_seed() buffer overflow was reported by Tianchu Chen
and discovered by Atuin - Automated Vulnerability Discovery Engine
There's no point in fixing all these vulnerabilities individually when
this is unused code, so let's just remove it.
Fixes: b8ae5c7387 ("crypto: sun4i-ss - support the Security System PRNG")
Cc: stable@vger.kernel.org
Reported-by: Tianchu Chen <flynnnchen@tencent.com>
Closes: https://lore.kernel.org/r/af749a8447bd7f0e9dd26ca6c87e9c6afecb09d9@linux.dev/
Acked-by: Corentin LABBE <clabbe.montjoie@gmail.com>
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
132 lines
3.9 KiB
Plaintext
132 lines
3.9 KiB
Plaintext
config CRYPTO_DEV_ALLWINNER
|
|
bool "Support for Allwinner cryptographic offloader"
|
|
depends on ARCH_SUNXI || COMPILE_TEST
|
|
default y if ARCH_SUNXI
|
|
help
|
|
Say Y here to get to see options for Allwinner hardware crypto devices
|
|
|
|
config CRYPTO_DEV_SUN4I_SS
|
|
tristate "Support for Allwinner Security System cryptographic accelerator"
|
|
depends on ARCH_SUNXI
|
|
depends on PM
|
|
depends on CRYPTO_DEV_ALLWINNER
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
select CRYPTO_AES
|
|
select CRYPTO_LIB_DES
|
|
select CRYPTO_SKCIPHER
|
|
help
|
|
Some Allwinner SoC have a crypto accelerator named
|
|
Security System. Select this if you want to use it.
|
|
The Security System handle AES/DES/3DES ciphers in CBC mode
|
|
and SHA1 and MD5 hash algorithms.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called sun4i-ss.
|
|
|
|
config CRYPTO_DEV_SUN4I_SS_DEBUG
|
|
bool "Enable sun4i-ss stats"
|
|
depends on CRYPTO_DEV_SUN4I_SS
|
|
depends on DEBUG_FS
|
|
help
|
|
Say y to enable sun4i-ss debug stats.
|
|
This will create /sys/kernel/debug/sun4i-ss/stats for displaying
|
|
the number of requests per algorithm.
|
|
|
|
config CRYPTO_DEV_SUN8I_CE
|
|
tristate "Support for Allwinner Crypto Engine cryptographic offloader"
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ENGINE
|
|
select CRYPTO_ECB
|
|
select CRYPTO_CBC
|
|
select CRYPTO_AES
|
|
select CRYPTO_DES
|
|
depends on CRYPTO_DEV_ALLWINNER
|
|
depends on PM
|
|
help
|
|
Select y here to have support for the crypto Engine available on
|
|
Allwinner SoC H2+, H3, H5, H6, R40 and A64.
|
|
The Crypto Engine handle AES/3DES ciphers in ECB/CBC mode.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called sun8i-ce.
|
|
|
|
config CRYPTO_DEV_SUN8I_CE_DEBUG
|
|
bool "Enable sun8i-ce stats"
|
|
depends on CRYPTO_DEV_SUN8I_CE
|
|
depends on DEBUG_FS
|
|
help
|
|
Say y to enable sun8i-ce debug stats.
|
|
This will create /sys/kernel/debug/sun8i-ce/stats for displaying
|
|
the number of requests per flow and per algorithm.
|
|
|
|
config CRYPTO_DEV_SUN8I_CE_HASH
|
|
bool "Enable support for hash on sun8i-ce"
|
|
depends on CRYPTO_DEV_SUN8I_CE
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
select CRYPTO_SHA256
|
|
select CRYPTO_SHA512
|
|
help
|
|
Say y to enable support for hash algorithms.
|
|
|
|
config CRYPTO_DEV_SUN8I_CE_PRNG
|
|
bool "Support for Allwinner Crypto Engine PRNG"
|
|
depends on CRYPTO_DEV_SUN8I_CE
|
|
select CRYPTO_RNG
|
|
help
|
|
Select this option if you want to provide kernel-side support for
|
|
the Pseudo-Random Number Generator found in the Crypto Engine.
|
|
|
|
config CRYPTO_DEV_SUN8I_CE_TRNG
|
|
bool "Support for Allwinner Crypto Engine TRNG"
|
|
depends on CRYPTO_DEV_SUN8I_CE
|
|
select HW_RANDOM
|
|
help
|
|
Select this option if you want to provide kernel-side support for
|
|
the True Random Number Generator found in the Crypto Engine.
|
|
|
|
config CRYPTO_DEV_SUN8I_SS
|
|
tristate "Support for Allwinner Security System cryptographic offloader"
|
|
select CRYPTO_SKCIPHER
|
|
select CRYPTO_ENGINE
|
|
select CRYPTO_ECB
|
|
select CRYPTO_CBC
|
|
select CRYPTO_AES
|
|
select CRYPTO_DES
|
|
depends on CRYPTO_DEV_ALLWINNER
|
|
depends on PM
|
|
help
|
|
Select y here to have support for the Security System available on
|
|
Allwinner SoC A80, A83T.
|
|
The Security System handle AES/3DES ciphers in ECB/CBC mode.
|
|
|
|
To compile this driver as a module, choose M here: the module
|
|
will be called sun8i-ss.
|
|
|
|
config CRYPTO_DEV_SUN8I_SS_DEBUG
|
|
bool "Enable sun8i-ss stats"
|
|
depends on CRYPTO_DEV_SUN8I_SS
|
|
depends on DEBUG_FS
|
|
help
|
|
Say y to enable sun8i-ss debug stats.
|
|
This will create /sys/kernel/debug/sun8i-ss/stats for displaying
|
|
the number of requests per flow and per algorithm.
|
|
|
|
config CRYPTO_DEV_SUN8I_SS_PRNG
|
|
bool "Support for Allwinner Security System PRNG"
|
|
depends on CRYPTO_DEV_SUN8I_SS
|
|
select CRYPTO_RNG
|
|
help
|
|
Select this option if you want to provide kernel-side support for
|
|
the Pseudo-Random Number Generator found in the Security System.
|
|
|
|
config CRYPTO_DEV_SUN8I_SS_HASH
|
|
bool "Enable support for hash on sun8i-ss"
|
|
depends on CRYPTO_DEV_SUN8I_SS
|
|
select CRYPTO_MD5
|
|
select CRYPTO_SHA1
|
|
select CRYPTO_SHA256
|
|
help
|
|
Say y to enable support for hash algorithms.
|