In the Linux kernel, the following vulnerability has been resolved:
s390/cio: fix race condition during online processing
A race condition exists in ccwdeviceset_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.
[
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-27009-52562c35",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3076b3c38a704e10df5e143c213653309d532538",
"digest": {
"line_hashes": [
"265149160785310053562929523574188662746",
"119640410995178604155853804900708007482",
"325226253831698918996353730982054662691",
"64528798335473737400276619814887395672",
"226445975698576399526921123114486973944",
"205926385186428437108211818484123835716",
"107198583637215476368512978698382500289",
"133904936675606983260391555441262250599",
"170555972038791584732623154939350096489",
"293483422222284407103926786828792814105",
"167331499255724407004707503455199777769"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-27009-6bb7802e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2df56f4ea769ff81e51bbb05699989603bde9c49",
"digest": {
"line_hashes": [
"265149160785310053562929523574188662746",
"119640410995178604155853804900708007482",
"325226253831698918996353730982054662691",
"64528798335473737400276619814887395672",
"226445975698576399526921123114486973944",
"205926385186428437108211818484123835716",
"107198583637215476368512978698382500289",
"133904936675606983260391555441262250599",
"170555972038791584732623154939350096489",
"293483422222284407103926786828792814105",
"167331499255724407004707503455199777769"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-27009-7182909e",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2d8527f2f911fab84aec04df4788c0c23af3df48",
"digest": {
"length": 2264.0,
"function_hash": "190966452694121432985707536329831822774"
},
"signature_version": "v1",
"target": {
"function": "ccw_device_set_online",
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-27009-7e71e7d0",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3076b3c38a704e10df5e143c213653309d532538",
"digest": {
"length": 2264.0,
"function_hash": "190966452694121432985707536329831822774"
},
"signature_version": "v1",
"target": {
"function": "ccw_device_set_online",
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-27009-9be95221",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@559f3a6333397ab6cd4a696edd65a70b6be62c6e",
"digest": {
"length": 2264.0,
"function_hash": "190966452694121432985707536329831822774"
},
"signature_version": "v1",
"target": {
"function": "ccw_device_set_online",
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-27009-9c90ba0b",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@559f3a6333397ab6cd4a696edd65a70b6be62c6e",
"digest": {
"line_hashes": [
"265149160785310053562929523574188662746",
"119640410995178604155853804900708007482",
"325226253831698918996353730982054662691",
"64528798335473737400276619814887395672",
"226445975698576399526921123114486973944",
"205926385186428437108211818484123835716",
"107198583637215476368512978698382500289",
"133904936675606983260391555441262250599",
"170555972038791584732623154939350096489",
"293483422222284407103926786828792814105",
"167331499255724407004707503455199777769"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-27009-b188679f",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2df56f4ea769ff81e51bbb05699989603bde9c49",
"digest": {
"length": 2264.0,
"function_hash": "190966452694121432985707536329831822774"
},
"signature_version": "v1",
"target": {
"function": "ccw_device_set_online",
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-27009-bc8183b1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4234decd0fe429832ca81c4637be7248b88b49e",
"digest": {
"line_hashes": [
"265149160785310053562929523574188662746",
"119640410995178604155853804900708007482",
"325226253831698918996353730982054662691",
"64528798335473737400276619814887395672",
"226445975698576399526921123114486973944",
"205926385186428437108211818484123835716",
"107198583637215476368512978698382500289",
"133904936675606983260391555441262250599",
"170555972038791584732623154939350096489",
"293483422222284407103926786828792814105",
"167331499255724407004707503455199777769"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Line",
"deprecated": false,
"id": "CVE-2024-27009-d5744162",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2d8527f2f911fab84aec04df4788c0c23af3df48",
"digest": {
"line_hashes": [
"265149160785310053562929523574188662746",
"119640410995178604155853804900708007482",
"325226253831698918996353730982054662691",
"64528798335473737400276619814887395672",
"226445975698576399526921123114486973944",
"205926385186428437108211818484123835716",
"107198583637215476368512978698382500289",
"133904936675606983260391555441262250599",
"170555972038791584732623154939350096489",
"293483422222284407103926786828792814105",
"167331499255724407004707503455199777769"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/s390/cio/device.c"
}
},
{
"signature_type": "Function",
"deprecated": false,
"id": "CVE-2024-27009-e4d7c9d3",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4234decd0fe429832ca81c4637be7248b88b49e",
"digest": {
"length": 2264.0,
"function_hash": "190966452694121432985707536329831822774"
},
"signature_version": "v1",
"target": {
"function": "ccw_device_set_online",
"file": "drivers/s390/cio/device.c"
}
}
]