crypto: qcom-rng - Remove crypto_rng interface
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.12.108, 6.18.49, 7.1.13, 7.2.3
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: qcom-rng - Remove crypto_rng interface qcom-rng.c exposes the same hardware through two completely separate interfaces, crypto_rng and hwrng. However, the implementation of this is buggy because it permits generation operations from these interfaces to run concurrently with each other, accessing the same registers. That is, qcom_rng_generate() synchronizes with itself but not with qcom_hwrng_read(). This results in potential repetition of output from the RNG, output of non-random values, etc. Fortunately, there's actually no point in hardware RNG drivers implementing the crypto_rng interface. It's not actually used by anything besides the "rng" algorithm type of AF_ALG, which in turn is not actually used in practice. Other crypto_rng hardware drivers are likewise being phased out, leaving just the hwrng support. Thus, remove it to simplify the code and avoid conflict (and confusion) with the hwrng interface which is the one that actually matters.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From f29cd5bb64c258f29b4c49452532481f50eb43ca · fixed in bb474dcd9d0224264a27a60891f00872b879835f; From f29cd5bb64c258f29b4c49452532481f50eb43ca · fixed in 14d9ee8286460a7b82f3b8610b5c7ebf4550b06b; From f29cd5bb64c258f29b4c49452532481f50eb43ca · fixed in 843e2bdaf8deb8bc341203094dfe582e38ea4af2; From f29cd5bb64c258f29b4c49452532481f50eb43ca · fixed in 669d940351eda316b82e24986e2e0e057653ce7d; From f29cd5bb64c258f29b4c49452532481f50eb43ca · fixed in 2ecdf5c9910e20f73639bc322f0518a3439d17c0
- Linux Linux
6.7
- KernelLinux
From 6.7.0 · fixed in 6.12.108; From 6.13.0 · fixed in 6.18.49; From 6.19.0 · fixed in 7.1.13; From 7.2.0 · fixed in 7.2.3