Executive brief
The Allwinner sun8i-ce hardware crypto engine driver in the Linux kernel contained a use-after-free vulnerability in its pseudo-random number generator (PRNG) interface. An attacker could send a signal during PRNG operation to cause memory corruption and potentially execute arbitrary code. This vulnerability has been fixed by removing the buggy and redundant crypto_rng interface entirely, as the driver's hwrng interface provides the same functionality without the flaw.
Technical details
The vulnerability is a use-after-free in the sun8i-ce driver's crypto_rng generate() function, which used wait_for_completion_interruptible_timeout() without properly handling signal interruption. If a signal was sent during a PRNG operation, the DMA operation would not be shut down, leaving dangling references that could be accessed after memory was freed. The crypto_rng interface itself was already being phased out as redundant with hwrng and the kernel's native RNG implementation. Rather than fixing this specific bug, the Linux kernel developers removed the entire crypto_rng interface from the driver, retaining only the functional hwrng interface. The fix was merged upstream in June 2026 and backported to stable kernel branches.
Affected products
- Linux Linux kernel versions prior to fix commit 011556f71d094da61379ae3672692cae2795304e
Timeline
- 2026-06-15: other: Vulnerability fixed upstream by Eric Biggers
- 2026-09-04: disclosed