Skip to main content

Linux Kernel EUVDEUVD-2026-32233

| CVE-2026-45949 MEDIUM
Race Condition (CWE-362)
2026-05-27 416baaa9-dc9f-4396-8d5f-8c081fb06d67 GHSA-f8m7-rc76-gphg
4.7
CVSS 3.1 · NVD
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Gain local/guest access to target system
  2. Delivery
    Trigger rapid virtio-rng hot-plug followed by hot-unplug
  3. Exploit
    Race hwrng_register() against hwrng_unregister()
  4. Execution
    hwrng_fill read outside rng_mutex (TOCTOU win)
  5. Persist
    kthread_stop() invoked on freed task_struct
  6. Impact
    Kernel use-after-free panic (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V15 - Secure Coding and Architecture Concurrency control, locking
MITRE ATT&CK

1 technique across 1 tactic: Privilege Escalation

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires local access with at least low-level privileges sufficient to trigger hardware RNG device registration and unregistration events - in practice, this means a guest VM operator or privileged process with the ability to hot-plug or hot-unplug a virtio-rng device, or to load and unload the relevant kernel module. The race window is specifically between concurrent invocations of hwrng_register() and hwrng_unregister() in the hwrng core; the vulnerability is not reachable from a pure userspace context without triggering these kernel paths. Exploitation is significantly limited by: (1) High Attack Complexity - the TOCTOU race requires precise timing to exploit reliably; (2) local-only access - the vulnerability has no network-facing component; (3) impact is restricted to availability (kernel crash and reboot) with no confirmed confidentiality or integrity consequence. Systems that never hot-plug hardware or virtual RNG devices and do not dynamically load/unload the hw_random module are not exposed to this race path.

Impact

The CVSS 3.1 score of 4.7 (Medium) with vector AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H accurately reflects constrained real-world risk. The High Attack Complexity metric directly reflects the timing-sensitive race window required to trigger the use-after-free, and local access with at least low-level privileges is required - this vulnerability is not remotely exploitable in any standard configuration. The EPSS score of 0.02% (5th percentile) confirms negligible opportunistic exploitation, and no CISA KEV listing has been found. A notable data quality issue: the intelligence tags include 'Information Disclosure,' which directly conflicts with the CVSS vector (C:N) and the described impact, which is strictly availability (kernel crash via use-after-free). This tag is assessed as erroneous - no confidentiality impact has been confirmed by any source. The primary real-world risk is targeted DoS against virtualized workloads, particularly during VM lifecycle events (guest addition/removal of virtio-rng devices), where the virtrng_remove path is reliably triggered. For static bare-metal systems that never hot-plug RNG devices, the practical risk is negligible.

Exploit ScenarioDerived

A low-privileged operator on a virtualized Linux host running a vulnerable kernel (e.g., 6.18.x prior to 6.18.14) rapidly attaches and detaches a virtio-rng device, triggering concurrent hwrng_register() and hwrng_unregister() calls in the guest kernel. The race condition causes hwrng_fill to be read outside the rng_mutex lock, resulting in kthread_stop() being invoked on a freed task_struct, producing a kernel use-after-free crash and guest system reboot. No public proof-of-concept exploit has been identified; reliably winning the race window requires precise timing, consistent with the CVSS High Complexity rating.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
No patch listed yet 0.0% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jun 16, 2026

Use-after-free race condition in the Linux kernel hwrng (hardware random number generator) core subsystem allows a local attacker with low privileges to crash the kernel, causing a denial of service. The race occurs when hwrng_register() and hwrng_unregister() execute concurrently, leaving the hwrng_fill pointer dirty and enabling kthread_stop() to be invoked on an already-freed task_struct - confirmed in the virtrng_remove call path, making virtualized Linux environments a primary real-world attack surface. No public exploit code exists and no active exploitation (KEV) has been confirmed; the EPSS score of 0.02% reflects minimal opportunistic exploitation activity.

RemediationAI

The primary remediation is to upgrade to a patched kernel release: 6.12.75 (for the 6.12.x stable series), 6.18.14 (for 6.18.x), 6.19.4 (for 6.19.x), or 7.0, as confirmed by EUVD-2026-32233. Individual stable branch commits are available at https://git.kernel.org/stable/c/ad38f2cdfef9a2f2899c30cad269baec5bfd4a5d, https://git.kernel.org/stable/c/cc2f39d6ac48e6e3cb2d6240bc0d6df839dd0828, https://git.kernel.org/stable/c/d5b7730f06994499632026c30e38e0317c4569e2, and https://git.kernel.org/stable/c/dcf416eb88eafe1e3c0f920a14bdffd10bc4d259. If an immediate kernel upgrade is not feasible, restrict concurrent virtio-rng hot-plug and hot-unplug operations by performing virtrng device attach/detach only during scheduled maintenance windows with no competing hwrng activity - this narrows the race window significantly, though it does not eliminate it. Alternatively, unloading the hw_random kernel module (modprobe -r hw_random) on systems that do not require hardware RNG input eliminates the attack surface entirely, with the trade-off of reducing entropy availability to /dev/random consumers, which may affect cryptographic services relying on hardware entropy.

Affected VersionsENISA

Linux 3.17
Linux patch: 0
Linux be4000bc4644d027c519b6361f5ae3bbfc52c347 <ad38f2cdfef9a2f2899c30cad269baec5bfd4a5d
Linux patch: 7.0
Linux patch: 6.19.4
Linux be4000bc4644d027c519b6361f5ae3bbfc52c347 <d5b7730f06994499632026c30e38e0317c4569e2
Linux patch: 6.12.75
Linux be4000bc4644d027c519b6361f5ae3bbfc52c347 <cc2f39d6ac48e6e3cb2d6240bc0d6df839dd0828
Linux be4000bc4644d027c519b6361f5ae3bbfc52c347 <dcf416eb88eafe1e3c0f920a14bdffd10bc4d259
Linux patch: 6.18.14

Affected Packages

euvd linux no fix

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in drivers/char/hw_random/core.c, the Linux kernel's hwrng subsystem introduced in version 3.17 (commit be4000bc4644d027c519b6361f5ae3bbfc52c347). The root cause is CWE-362 (Concurrent Execution Using Shared Resource with Improper Synchronization): the global hwrng_fill pointer, which holds the kthread task_struct, is read inside hwrng_unregister() without holding the rng_mutex lock, creating a TOCTOU window. In one race path, a concurrent hwrng_unregister() calls kthread_stop() twice on the same task. In a second path, if hwrng_unregister() is called immediately after hwrng_register() before the thread runs, hwrng_fill is never cleared, causing subsequent hwrng_register() calls to fail to start new threads, and hwrng_unregister() to call kthread_stop() on the freed task_struct - both triggering a use-after-free (refcount_t addition on 0). The fix serializes kthread_run()/kthread_stop() under rng_mutex, converts current_rng to RCU for lockless reads in hwrng_fillfn(), and defers cleanup into a work_struct to avoid deadlock. Affected CPE: cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* from 3.17 through pre-patch versions.

Know when the next one hits your stack

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

NVD PRIMARY 4.7 MEDIUM
AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
vuln.today AI 4.7 MEDIUM

Local-only kernel race requiring device hot-plug privileges (AV:L, PR:L), timing-sensitive TOCTOU window (AC:H), impact is kernel crash only with no confidentiality or integrity consequence (A:H, C:N, I:N).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:N/A:H
4.0 AV:L/AC:H/AT:P/PR:L/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
SUSE 6.4 MEDIUM
AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Red Hat 5.5 MEDIUM

Primary rating from NVD.

CVSS VectorNVD

Attack Vector
Local
Attack Complexity
High
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
None
Availability
High

Lifecycle Timeline

2
CVSS changed
Jun 16, 2026 - 02:37 NVD
4.7 (MEDIUM)
CVE Published
May 27, 2026 - 14:17 nvd
UNKNOWN (no severity yet)

DescriptionNVD

In the Linux kernel, the following vulnerability has been resolved:

hwrng: core - use RCU and work_struct to fix race condition

Currently, hwrng_fill is not cleared until the hwrng_fillfn() thread exits. Since hwrng_unregister() reads hwrng_fill outside the rng_mutex lock, a concurrent hwrng_unregister() may call kthread_stop() again on the same task.

Additionally, if hwrng_unregister() is called immediately after hwrng_register(), the stopped thread may have never been executed. Thus, hwrng_fill remains dirty even after hwrng_unregister() returns. In this case, subsequent calls to hwrng_register() will fail to start new threads, and hwrng_unregister() will call kthread_stop() on the same freed task. In both cases, a use-after-free occurs:

refcount_t: addition on 0; use-after-free. WARNING: ... at lib/refcount.c:25 refcount_warn_saturate+0xec/0x1c0 Call Trace: kthread_stop+0x181/0x360 hwrng_unregister+0x288/0x380 virtrng_remove+0xe3/0x200

This patch fixes the race by protecting the global hwrng_fill pointer inside the rng_mutex lock, so that hwrng_fillfn() thread is stopped only once, and calls to kthread_run() and kthread_stop() are serialized with the lock held.

To avoid deadlock in hwrng_fillfn() while being stopped with the lock held, we convert current_rng to RCU, so that get_current_rng() can read current_rng without holding the lock. To remove the lock from put_rng(), we also delay the actual cleanup into a work_struct.

Since get_current_rng() no longer returns ERR_PTR values, the IS_ERR() checks are removed from its callers.

With hwrng_fill protected by the rng_mutex lock, hwrng_fillfn() can no longer clear hwrng_fill itself. Therefore, if hwrng_fillfn() returns directly after current_rng is dropped, kthread_stop() would be called on a freed task_struct later. To fix this, hwrng_fillfn() calls schedule() now to keep the task alive until being stopped. The kthread_stop() call is also moved from hwrng_unregister() to drop_current_rng(), ensuring kthread_stop() is called on all possible paths where current_rng becomes NULL, so that the thread would not wait forever.

Threat Intelligence Overview

EPSS Score
0.0%
Top 95% exploitable
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.0%
Patch available No
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Defer
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact· derived
Medium

Priority Score

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

Race conditions occur when multiple concurrent requests exploit the brief time gap between checking a condition and acting upon it (TOCTOU - Time of Check, Time of Use).

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy