
CVE catalog
CVE-2026-45949
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 e
- Severity
- Medium · CVSS 5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H - Published
- Source
- [NVD] · [CVE record]
- EPSS
- 0.09% · Oct 25, 2026
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.
Vulnerable and fixed packages
Distribution-reported package versions and fixes. These do not depend on matching against the OpenFactory package catalog.
| Distribution | Package | Release | Version | Status |
|---|---|---|---|---|
| Debian | linux | sid | 7.2.12-1 | fixed |
| Debian | linux | forky | 7.2.12-1 | fixed |
| Debian | linux | trixie | 6.12.107-1 | fixed |
| Debian | linux | trixie-security | 6.12.113-1 | fixed |
| Debian | linux | bookworm | 6.1.176-1 | vulnerable |
| Debian | linux | bookworm-security | 6.1.190-1 | vulnerable |
| Cpe | linux | Not reported | Not reported | vulnerable |
| Cpe | linux_kernel | Not reported | 6.12.75 | fixed |
| Cpe | linux_kernel | Not reported | 6.18.14 | fixed |
| Cpe | linux_kernel | Not reported | 6.19.4 | fixed |
| Cpe | linux_kernel | Not reported | 6.19.4 | fixed |
Fixed-version evidence
| Distribution | Package | Type | Release | Fixed version | Urgency | Origin | Bugs |
|---|---|---|---|---|---|---|---|
| Debian | linux | source | sid | 6.18.14-1 | not yet assigned | Not reported | Not reported |
| Debian | linux | source | forky | 6.18.14-1 | not yet assigned | Not reported | Not reported |
| Debian | linux | source | trixie | 6.12.85-1 | not yet assigned | Not reported | Not reported |
| Debian | linux | source | bookworm | (unfixed) | not yet assigned | Not reported | Not reported |
| Cpe | linux_kernel | cpe | Not reported | 6.12.75 | Not reported | Not reported | Not reported |
| Cpe | linux_kernel | cpe | Not reported | 6.18.14 | Not reported | Not reported | Not reported |
| Cpe | linux_kernel | cpe | Not reported | 6.19.4 | Not reported | Not reported | Not reported |
| Cpe | linux_kernel | cpe | Not reported | 6.19.4 | Not reported | NVD-CVE-2026-45949 | Not reported |
OpenFactory catalog packages
[Debian 12 (Bookworm)]
- [bpftool]Affected
Source package: [linux]
Details (6)
7.1.0+6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
7.1.0+6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
7.5.0+6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
7.5.0+6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
7.1.0+6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
7.1.0+6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [hyperv-daemons]Affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [intel-sdsi]Affected
Source package: [linux]
Details (1)
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [libcpupower1]Affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [libcpupower-dev]Affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-bpf-dev]Affected
Source package: [linux]
Details (2)
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-compiler-gcc-12-x86]Affected
Source package: [linux]
Details (2)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-config-6.1]Affected
Source package: [linux]
Details (4)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-cpupower]Affected
Source package: [linux]
Details (6)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· amd64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· arm64 · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· amd64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· arm64 · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-doc]Affected
Source package: [linux]
Details (32)
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.43-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.43-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.57-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.57-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.63-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.63-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.69-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.69-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.73-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.73-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.74-2~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.74-2~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.85-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.85-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.86-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.86-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.88-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.88-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.90-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.90-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.90-2~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.90-2~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.94-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.94-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.12.95-1~bpo12+1· all · bookworm-backportsAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· all · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· all · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-doc-6.1]Affected
Source package: [linux]
Details (6)
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.176-1· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· all · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.180-1· all · bookworm-securityAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-amd64]Affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-arm64]Affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-cloud-amd64]Affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-cloud-arm64]Affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-common]Affected
Source package: [linux]
Details (2)
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-common-rt]Affected
Source package: [linux]
Details (2)
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
6.1.170-3· all · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-rt-amd64]Affected
Source package: [linux]
Details (1)
6.1.170-3· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-47-rt-arm64]Affected
Source package: [linux]
Details (1)
6.1.170-3· arm64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
- [linux-headers-6.1.0-50-amd64]Affected
Source package: [linux]
Details (1)
6.1.176-1· amd64 · bookwormAffected
nvd · linux · debian · bookworm; nvd · linux · debian · 12
Observed:
References
- [https://nvd.nist.gov/vuln/detail/CVE-2026-45949]
- [https://osv.dev/vulnerability/DEBIAN-CVE-2026-45949]
- [https://security-tracker.debian.org/tracker/CVE-2026-45949]
- [https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-45949.json]
- [https://wid.cert-bund.de/.well-known/csaf/white/2026/wid-sec-w-2026-1700.json]
[CERT-Bund public advisories] · [Debian Security Tracker] · [FIRST EPSS] · [National Vulnerability Database (NVD)] · [OSV Package Vulnerability Database] · [Red Hat security advisories and VEX]