In the Linux kernel, the following vulnerability has been resolved:
s390/cio: fix race condition during online processing
A race condition exists in ccw_device_set_online() that can cause the
online process to fail, leaving the affected device in an inconsistent
state. As a result, subsequent attempts to set that device online fail
with return code ENODEV.
The problem occurs when a path verification request arrives after
a wait for final device state completed, but before the result state
is evaluated.
Fix this by ensuring that the CCW-device lock is held between
determining final state and checking result state.
Note that since:
commit 2297791c92d0 (“s390/cio: dont unregister subchannel from child-drivers”)
path verification requests are much more likely to occur during boot,
resulting in an increased chance of this race condition occurring.
[
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "unaffected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/s390/cio/device.c"
],
"versions": [
{
"version": "2297791c92d0",
"lessThan": "3076b3c38a70",
"status": "affected",
"versionType": "git"
},
{
"version": "2297791c92d0",
"lessThan": "559f3a633339",
"status": "affected",
"versionType": "git"
},
{
"version": "2297791c92d0",
"lessThan": "2df56f4ea769",
"status": "affected",
"versionType": "git"
},
{
"version": "2297791c92d0",
"lessThan": "a4234decd0fe",
"status": "affected",
"versionType": "git"
},
{
"version": "2297791c92d0",
"lessThan": "2d8527f2f911",
"status": "affected",
"versionType": "git"
}
]
},
{
"product": "Linux",
"vendor": "Linux",
"defaultStatus": "affected",
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"programFiles": [
"drivers/s390/cio/device.c"
],
"versions": [
{
"version": "5.15",
"status": "affected"
},
{
"version": "0",
"lessThan": "5.15",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "5.15.157",
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.1.88",
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.6.29",
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.8.8",
"lessThanOrEqual": "6.8.*",
"status": "unaffected",
"versionType": "custom"
},
{
"version": "6.9",
"lessThanOrEqual": "*",
"status": "unaffected",
"versionType": "original_commit_for_fix"
}
]
}
]
git.kernel.org/stable/c/2d8527f2f911fab84aec04df4788c0c23af3df48
git.kernel.org/stable/c/2df56f4ea769ff81e51bbb05699989603bde9c49
git.kernel.org/stable/c/3076b3c38a704e10df5e143c213653309d532538
git.kernel.org/stable/c/559f3a6333397ab6cd4a696edd65a70b6be62c6e
git.kernel.org/stable/c/a4234decd0fe429832ca81c4637be7248b88b49e