CVE-2026-45981: Linux kernel · s390/cio: Fix device lifecycle handling in css_alloc_subchannel()
Affects Linux kernelSource CVE Database V5
Not known to be exploited · fixed in f96c5ccf95ae5f27218c1ce2d6a3ad2d3e105424 : update Linux kernel when convenient.
Data as of 6 Nov 2026, 16:34 UTC
Rated by Threat Radar · No CVSS score from NVD or the CNA
Thin evidence
One scorer or none- CISA SSVC
- Exploitation
- No evidence of active exploitation and no public proof of concept
- Automatable
- Attackers cannot reliably automate steps 1–4 of the kill chain
- Technical impact
- Limited control over the software or limited information exposure
CISA SSVC assessment, 2026-11-06.
- Patch
- Available – fixed in f96c5ccf95ae5f27218c1ce2d6a3ad2d3e105424, f65c75b0b9b5a390bc3beadcde0a6fbc3ad118f7, c35cfbb5341ba05ad1b4476ffc3c21cc3ff8f603 +2
Exploitation evidence
Disclosed: evidence found.
CVE published 27 May 2026
Detectable: no evidence on record.
No public nuclei template indexed
Weaponized: no evidence on record.
No public exploit code indexed in Metasploit or Exploit-DB
Exploited in the wildExploited: no evidence on record.
Not in CISA KEV and no source reports exploitation
Observed by OffSeq MirageSeen by Mirage: no evidence on record.
No attack traffic recorded by OffSeq Mirage sensors
A missing step is not evidence of safety. Sources: cve.org (opens in a new tab), the Metasploit, Exploit-DB and nuclei-templates index as of 6 Nov 2026.
What to do
Upgrade to a fixed release listed under Affected software.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in
|
| LinuxLinux | Affected
| Fixed in– |
Description
In the Linux kernel, the following vulnerability has been resolved: s390/cio: Fix device lifecycle handling in css_alloc_subchannel() `css_alloc_subchannel()` calls `device_initialize()` before setting up the DMA masks. If `dma_set_coherent_mask()` or `dma_set_mask()` fails, the error path frees the subchannel structure directly, bypassing the device model reference counting. Once `device_initialize()` has been called, the embedded struct device must be released via `put_device()`, allowing the release callback to free the container structure. Fix the error path by dropping the initial device reference with `put_device()` instead of calling `kfree()` directly. This ensures correct device lifetime handling and avoids potential use-after-free or double-free issues.
References
- git.kernel.org/stable/c/abb6e07f46a740cda4f07d1b561ae4eaa7a1df42 (opens in a new tab)
- git.kernel.org/stable/c/f96c5ccf95ae5f27218c1ce2d6a3ad2d3e105424 (opens in a new tab)
- git.kernel.org/stable/c/6715560527e343a387e4a0d2e6c401748e89fa55 (opens in a new tab)
- git.kernel.org/stable/c/c35cfbb5341ba05ad1b4476ffc3c21cc3ff8f603 (opens in a new tab)
- git.kernel.org/stable/c/f65c75b0b9b5a390bc3beadcde0a6fbc3ad118f7 (opens in a new tab)