Description
In the Linux kernel, the following vulnerability has been resolved: crypto: atmel-sha204a - fix heap info leak on I2C transfer failure The nonblocking RNG path allocates a work_data structure to track the state of an in-flight asynchronous I2C request. This pointer is stored in rng->priv and later consumed by the read path once the transaction completes. If the underlying I2C transfer fails, the completion callback is invoked with a non-zero status. In this case, the allocated work_data is not usable for producing RNG output and must not remain associated with the hwrng state. Previously, the failure path only logged a warning but left the pointer state uncleared, which can result in subsequent read attempts observing stale state and interpreting it as valid completion data. Fix this by freeing the pending work_data. The I2C transaction reports an error. This ensures that failed requests do not leave residual state behind that could be interpreted as valid RNG data on later reads. Clearing rng->priv is done at the subsequent call to nonblocking read.
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
da001fb651b00e1deeaf24767dd691ae8152a4f5 to < a430b5b6d2ddd2b266330f8507a655be1148347daffectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < 4e76d85e505b7451925efbcd67c015e8c2440c68affectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < bcac9052e19490231ff6e0678a06bd2fcf8db3afaffectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < 28cc179252347718f97045dd5ea74165609dbd7daffectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < 0d6db386133d9230befb77967bbf130443964860affectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < f4d347fb1309b69ea6f817a17e6b2893c8d754b7affectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < 94abda77b57a35b82bba0365bad072d94d67ffe9affectedda001fb651b00e1deeaf24767dd691ae8152a4f5 to < 72bbf11ba14bd7d5fbf31a1ec42fff608b657f74affected
Linux Linux
Default version status: affected
5.3affected0 to < 5.3unaffected5.10.270 to ≤ 5.10.*unaffected5.15.221 to ≤ 5.15.*unaffected6.1.188 to ≤ 6.1.*unaffected6.6.157 to ≤ 6.6.*unaffected6.12.110 to ≤ 6.12.*unaffected6.18.52 to ≤ 6.18.*unaffected7.2.6 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected
References
- https://git.kernel.org/stable/c/a430b5b6d2ddd2b266330f8507a655be1148347d ↗
- https://git.kernel.org/stable/c/4e76d85e505b7451925efbcd67c015e8c2440c68 ↗
- https://git.kernel.org/stable/c/bcac9052e19490231ff6e0678a06bd2fcf8db3af ↗
- https://git.kernel.org/stable/c/28cc179252347718f97045dd5ea74165609dbd7d ↗
- https://git.kernel.org/stable/c/0d6db386133d9230befb77967bbf130443964860 ↗
- https://git.kernel.org/stable/c/f4d347fb1309b69ea6f817a17e6b2893c8d754b7 ↗
- https://git.kernel.org/stable/c/94abda77b57a35b82bba0365bad072d94d67ffe9 ↗
- https://git.kernel.org/stable/c/72bbf11ba14bd7d5fbf31a1ec42fff608b657f74 ↗