PatchSiren cyber security CVE debrief
CVE-2026-45949 Linux CVE debrief
A use-after-free vulnerability in the Linux kernel's hardware random number generator (hwrng) core could allow local attackers to trigger memory corruption. The flaw stems from a race condition where hwrng_unregister() could call kthread_stop() multiple times on the same task_struct due to unsynchronized access to the global hwrng_fill pointer. Additionally, rapid register/unregister sequences could leave hwrng_fill in a dirty state, causing subsequent operations to fail or reference freed memory. The vulnerability manifests as refcount_t warnings and potential kernel crashes. The fix implements RCU protection for current_rng access, serializes kthread operations under rng_mutex, and introduces a work_struct for delayed cleanup to prevent deadlocks.
- Vendor
- Linux
- Product
- Unknown
- CVSS
- MEDIUM 4.7
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-05-27
- Original CVE updated
- 2026-06-16
- Advisory published
- 2026-05-27
- Advisory updated
- 2026-06-16
Who should care
Linux system administrators, kernel maintainers, cloud infrastructure operators using virtio-rng, and security teams monitoring for local privilege escalation vectors in multi-tenant environments
Technical summary
The hwrng core subsystem in the Linux kernel contained a race condition where concurrent hwrng_register() and hwrng_unregister() operations could manipulate the global hwrng_fill pointer without adequate synchronization. The hwrng_fillfn() kernel thread was not cleared until thread exit, but hwrng_unregister() accessed it outside rng_mutex, enabling double kthread_stop() calls. Rapid register/unregister sequences could also leave hwrng_fill dirty, causing subsequent hwrng_register() calls to fail and hwrng_unregister() to reference freed task_struct memory. The fix converts current_rng access to RCU protection, protects hwrng_fill under rng_mutex, moves kthread_stop() to drop_current_rng() for consistent cleanup paths, and introduces work_struct-based delayed cleanup to avoid deadlocks. The hwrng_fillfn() thread now calls schedule() to remain alive until properly stopped.
Defensive priority
high
Recommended defensive actions
- Apply kernel updates containing commits ad38f2cdfef9, cc2f39d6ac48, d5b7730f0699, or dcf416eb88ea from the stable kernel tree
- Monitor kernel logs for refcount_t warnings or kthread_stop() related oopses as potential exploitation indicators
- Restrict access to hwrng device nodes (/dev/hwrng, /dev/random backend interfaces) to trusted processes only
- Review systems utilizing virtual RNG drivers (virtio-rng) for abnormal kernel behavior
- Consider disabling hardware RNG fallback mechanisms if not required for operational security posture
Evidence notes
The vulnerability description indicates this is a resolved Linux kernel issue affecting the hwrng core subsystem. The race condition involves hwrng_fill pointer management outside proper locking, with specific crash signatures including refcount_t saturation warnings in kthread_stop() paths. Multiple stable kernel commits are referenced, suggesting backports to affected versions. The virtrng_remove() call trace indicates virtual RNG drivers are affected attack vectors.
Sources and references
Verified primary and authoritative sources
-
CVE-2026-45949 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-45949
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-45949 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-45949
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/ad38f2cdfef9a2f2899c30cad269baec5bfd4a5d
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/cc2f39d6ac48e6e3cb2d6240bc0d6df839dd0828
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/d5b7730f06994499632026c30e38e0317c4569e2
416baaa9-dc9f-4396-8d5f-8c081fb06d67
-
Source reference
Unverified legacy reference
URL: https://git.kernel.org/stable/c/dcf416eb88eafe1e3c0f920a14bdffd10bc4d259
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.