CVE-2026-80834 Overview
CVE-2026-80834 is a use-after-free vulnerability in the Linux kernel's sun8i-ce crypto driver. The flaw resides in the crypto_rng interface's ->generate() function, which uses wait_for_completion_interruptible_timeout() without properly handling DMA operation teardown when a signal interrupts the wait. This creates a window where memory can be freed while DMA operations continue to reference it. The Linux kernel maintainers resolved the issue by removing the redundant crypto_rng interface for the sun8i-ce driver entirely, since it duplicates functionality already provided by the hwrng subsystem and the core Linux RNG. The hwrng interface for sun8i-ce, which is the interface that actually matters for hardware random number generation, remains in place.
Critical Impact
A local attacker able to interact with the sun8i-ce crypto_rng interface and deliver a signal during PRNG generation can trigger a use-after-free condition, potentially leading to kernel memory corruption on Allwinner sun8i-based systems.
Affected Products
- Linux kernel builds enabling the sun8i-ce Crypto Engine driver on Allwinner SoCs
- Kernel branches receiving stable backports as indicated by the associated Fixes and Cc: stable tags
- Downstream distributions shipping unpatched kernels with the sun8i-ce crypto_rng interface enabled
Discovery Timeline
- 2026-09-04 - CVE-2026-80834 published to NVD
- 2026-09-07 - Last updated in NVD database
Technical Details for CVE-2026-80834
Vulnerability Analysis
The sun8i-ce driver provides cryptographic acceleration for Allwinner sun8i-series System-on-Chips. It historically exposed a pseudo-random number generator through the kernel's crypto_rng interface in addition to the standard hwrng interface. The ->generate() callback initiates a DMA operation against the crypto engine hardware and waits for completion using wait_for_completion_interruptible_timeout(). When a signal arrives during the wait, the function returns without cancelling the outstanding DMA transaction. The DMA engine continues writing to buffers that the caller may have already released, producing a use-after-free condition [CWE-416]. Rather than patching this logic in isolation, upstream maintainers removed the crypto_rng interface from the driver because it duplicates the hwrng path and the broader crypto_rng interface for hardware PRNGs is being phased out kernel-wide.
Root Cause
The root cause is missing cleanup on the interruptible wait path. The ->generate() function assumes that returning early from the wait implies the DMA operation is complete or safe to abandon. In reality, hardware DMA continues asynchronously and can dereference caller-provided buffers after they leave scope. No cancellation, teardown, or synchronization is performed before returning.
Attack Vector
Exploitation requires local access with permission to invoke the crypto_rng API against the sun8i-ce driver, typically through the AF_ALG socket interface. An attacker triggers PRNG generation and delivers a signal to the calling thread before the DMA completes, forcing the interruptible wait to return early while DMA continues. Post-free memory reuse determines the eventual impact, ranging from kernel memory corruption to potential privilege escalation on affected Allwinner hardware.
No verified proof-of-concept code is publicly available. Refer to the upstream commits for the exact code paths involved: Kernel Git Commit 011556f, Kernel Git Commit 1017f9, Kernel Git Commit 7bb9e6, and Kernel Git Commit 8e4f91.
Detection Methods for CVE-2026-80834
Indicators of Compromise
- Kernel oops or panic messages referencing sun8i_ce_prng_generate or DMA completion callbacks on Allwinner sun8i systems
- KASAN use-after-free reports implicating the sun8i-ce module during PRNG operations
- Unexpected process signal delivery patterns targeting threads actively using AF_ALG rng sockets
Detection Strategies
- Enumerate kernel modules on Allwinner sun8i devices and flag hosts loading sun8i-ce on kernel versions predating the fix commits
- Enable KASAN in test and staging kernels to surface the use-after-free condition during fuzzing of AF_ALG interfaces
- Correlate crash telemetry with recent AF_ALG crypto_rng activity to identify attempted exploitation
Monitoring Recommendations
- Monitor dmesg and journald for crypto subsystem faults, DMA errors, and slab corruption warnings on sun8i-based fleets
- Track EPSS scoring updates for CVE-2026-80834 as exploit maturity evolves
- Audit which user accounts and containers have access to AF_ALG sockets, since local unprivileged access is required for exploitation
How to Mitigate CVE-2026-80834
Immediate Actions Required
- Update affected Linux kernels to versions that include the upstream fix commits removing the sun8i-cecrypto_rng interface
- Inventory Allwinner sun8i-based hardware in your environment and prioritize patching of embedded, IoT, and single-board-computer deployments
- Restrict local access to AF_ALG sockets on multi-tenant or untrusted-user systems until patches are applied
Patch Information
The fix consists of removing the crypto_rng registration path from the sun8i-ce driver while retaining hwrng support. Apply the changes in Kernel Git Commit 011556f, Kernel Git Commit 1017f9, Kernel Git Commit 7bb9e6, and Kernel Git Commit 8e4f91. Distribution vendors are backporting the change to supported stable branches; monitor your distribution's security tracker for corresponding advisories.
Workarounds
- Disable the sun8i-ce module through modprobe blacklisting on systems that do not require hardware crypto acceleration
- Deny access to the AF_ALG socket family via seccomp, SELinux, or AppArmor profiles for unprivileged workloads
- Rely on the kernel's built-in RNG and hwrng interface rather than the deprecated crypto_rng API where possible
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.