s390/vfio_ccw: Free all memory if cp_init() fails
21Vexday Risk Score
No sign of exploitation. No public exploitation artifact known so far.
ssvc Trackcvss 7.1epss 0.2%
exploitation probability
0.2%top 93% of all CVEs
observed exploitation
nono source reports it
In the Linux kernel, the following vulnerability has been resolved:
s390/vfio_ccw: Free all memory if cp_init() fails
The routine cp_free() is called to unpin/free any memory once an I/O
is completed successfully, or if cp_prefetch() fails. But if cp_init()
fails, and cp->initialized is not enabled, the same routine cannot be
used to free all the memory.
An attempt to address this exists in ccwchain_handle_ccw(), where a
single call to ccwchain_free() is made for the currently-processed
CCW segment. But this will leak other segments (created as a result
of a Transfer in Channel) that had been allocated as part of the same
channel program.
Address this by performing the cleanup outside of the recursive
ccwchain_handle_ccw()/ccwchain_loop_tic() logic.
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:C/C:N/I:N/A:H
Affected products
Linux · LinuxReferences
https://git.kernel.org/stable/c/152fcb74a26804b70909381c6acc90595a0ae1c1https://git.kernel.org/stable/c/17e01e342af74de12899c206dcc9ec90684703aahttps://git.kernel.org/stable/c/276bd7ed34d56c48c65c43c0b08f2ee77029b2fahttps://git.kernel.org/stable/c/32e3d364a7b8295120d37e6a6bd433d2de26f748https://git.kernel.org/stable/c/4699b54fada156534cbb39834d47fc9374d7a1f5https://git.kernel.org/stable/c/6a917199aaf97904f5619afe3dfdacb155b03e8chttps://git.kernel.org/stable/c/74186c2968f8f756ac3226b545b598457c910c75https://git.kernel.org/stable/c/f9bcff265556796834122f95de16d52a8375206c