Impact
The flaw in the Linux kernel’s s390 CIO subchannel allocation process originates from incorrect reference counting. 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 with kfree(), 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 containing structure. The recent fix drops the initial device reference with put_device() on the error path. This change prevents improper memory deallocation that could lead to memory corruption or double‑free conditions, allowing a potential use of freed memory or kernel panic.
Affected Systems
Any Linux kernel running on the IBM s390 architecture that does not include the committed fix is affected. The buggy code resides in core kernel subsystems, so all s390 installations that use the default cio driver before the commit that added the put_device() fix are potentially vulnerable. No vendor‑specific version list is provided, but the flaw applies to all s390 kernels prior to the patch release.
Risk and Exploitability
The CVSS score is 5.5 and the EPSS score is not available, placing the flaw in the medium severity range. The flaw is not listed in the CISA KEV catalog, indicating no known public exploits yet. Based on the description, it is inferred that attackers would need privileged or root access to invoke the subchannel allocation routine, limiting exposure to local users with elevated rights. Based on the description, it is inferred that an attacker who triggers the failure path could cause memory corruption or a kernel panic, potentially leading to kernel‑level code execution, representing a significant but constrained risk.
OpenCVE Enrichment
Debian DLA