In the Linux kernel, the following vulnerability has been resolved:
irqchip/gic-v3-its: Don't enable interrupts in itsirqsetvcpuaffinity()
The following call-chain leads to enabling interrupts in a nested interrupt disabled section:
irqsetvcpuaffinity() irqgetdesclock() rawspinlockirqsave() <--- Disable interrupts itsirqsetvcpuaffinity() guard(rawspinlockirq) <--- Enables interrupts when leaving the guard() irqputdescunlock() <--- Warns because interrupts are enabled
This was broken in commit b97e8a2f7130, which replaced the original rawspin[un]lock() pair with guard(rawspinlockirq).
Fix the issue by using guard(raw_spinlock).
[ tglx: Massaged change log ]
[
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"61014309059071728262489362264742287028",
"99424129366739706112690509367937889035",
"20649808231670132741503072526755223743",
"285421504340514960268229729022978767247"
]
},
"id": "CVE-2024-57949-13495a75",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6c84ff2e788fce0099ee3e71a3ed258b1ca1a223",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"61014309059071728262489362264742287028",
"99424129366739706112690509367937889035",
"20649808231670132741503072526755223743",
"285421504340514960268229729022978767247"
]
},
"id": "CVE-2024-57949-420b5e0e",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d7b0e89610dd45ac6cf0d6f99bfa9ccc787db344",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"61014309059071728262489362264742287028",
"99424129366739706112690509367937889035",
"20649808231670132741503072526755223743",
"285421504340514960268229729022978767247"
]
},
"id": "CVE-2024-57949-556c64ac",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@35cb2c6ce7da545f3b5cb1e6473ad7c3a6f08310",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "120253746219112136790011584257257976444",
"length": 524.0
},
"id": "CVE-2024-57949-8f755f79",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@93955a7788121ab5a0f7f27e988b2ed1135a4866",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c",
"function": "its_irq_set_vcpu_affinity"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "120253746219112136790011584257257976444",
"length": 524.0
},
"id": "CVE-2024-57949-a5d747ff",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6c84ff2e788fce0099ee3e71a3ed258b1ca1a223",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c",
"function": "its_irq_set_vcpu_affinity"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "120253746219112136790011584257257976444",
"length": 524.0
},
"id": "CVE-2024-57949-b164f9ae",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@35cb2c6ce7da545f3b5cb1e6473ad7c3a6f08310",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c",
"function": "its_irq_set_vcpu_affinity"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"61014309059071728262489362264742287028",
"99424129366739706112690509367937889035",
"20649808231670132741503072526755223743",
"285421504340514960268229729022978767247"
]
},
"id": "CVE-2024-57949-bc620878",
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@93955a7788121ab5a0f7f27e988b2ed1135a4866",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c"
}
},
{
"deprecated": false,
"signature_version": "v1",
"digest": {
"function_hash": "120253746219112136790011584257257976444",
"length": 524.0
},
"id": "CVE-2024-57949-edfef59d",
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d7b0e89610dd45ac6cf0d6f99bfa9ccc787db344",
"target": {
"file": "drivers/irqchip/irq-gic-v3-its.c",
"function": "its_irq_set_vcpu_affinity"
}
}
]