In the Linux kernel, the following vulnerability has been resolved:
padata: Always leave BHs disabled when running ->parallel()
A deadlock can happen when an overloaded system runs ->parallel() in the context of the current task:
padata_do_parallel
->parallel()
pcrypt_aead_enc/dec
padata_do_serial
spin_lock(&reorder->lock) // BHs still enabled
<interrupt>
...
__do_softirq
...
padata_do_serial
spin_lock(&reorder->lock)
It's a bug for BHs to be on in doserial as Steffen points out, so ensure they're off in the "current task" case like they are in padataparallelworker to avoid this situation.
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/50xxx/CVE-2022-50382.json"
}[
{
"signature_version": "v1",
"id": "CVE-2022-50382-073b363e",
"digest": {
"length": 1115.0,
"function_hash": "126027616950413021070222796850839821794"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@34c3a47d20ae55b3600fed733bf96eafe9c500d5",
"deprecated": false,
"target": {
"function": "padata_do_parallel",
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-4e9815ff",
"digest": {
"length": 1115.0,
"function_hash": "126027616950413021070222796850839821794"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6cfa9e60c0f88fdec6368e081ab968411cc706b1",
"deprecated": false,
"target": {
"function": "padata_do_parallel",
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-630c53b0",
"digest": {
"threshold": 0.9,
"line_hashes": [
"168785247935678690499580415863465362479",
"31711518480246874912556121850460836535",
"197872329326184877655092011820061923894",
"263957974890985122200802498290579672476",
"231340324333252986172510210376028873106",
"208865945490632233918134194375649128338",
"285381500365220780732336314522906694124",
"230892853373042544822193543082628813654",
"107337557302372161936902500389408962241"
]
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6cfa9e60c0f88fdec6368e081ab968411cc706b1",
"deprecated": false,
"target": {
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-746f563b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"168785247935678690499580415863465362479",
"31711518480246874912556121850460836535",
"197872329326184877655092011820061923894",
"263957974890985122200802498290579672476",
"231340324333252986172510210376028873106",
"208865945490632233918134194375649128338",
"285381500365220780732336314522906694124",
"230892853373042544822193543082628813654",
"107337557302372161936902500389408962241"
]
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8e0681dd4eee029eb1d533d06993f7cb091efb73",
"deprecated": false,
"target": {
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-7ae082b0",
"digest": {
"length": 1115.0,
"function_hash": "126027616950413021070222796850839821794"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7337adb20fcc0aebb50eaff2bc5a8dd9a7c6743d",
"deprecated": false,
"target": {
"function": "padata_do_parallel",
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-81021b24",
"digest": {
"length": 1117.0,
"function_hash": "285062344776960205688574458796107337341"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@17afa98bccec4f52203508b3f49b5f948c6fd6ac",
"deprecated": false,
"target": {
"function": "padata_do_parallel",
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-d5a2c7dd",
"digest": {
"threshold": 0.9,
"line_hashes": [
"168785247935678690499580415863465362479",
"31711518480246874912556121850460836535",
"197872329326184877655092011820061923894",
"263957974890985122200802498290579672476",
"231340324333252986172510210376028873106",
"208865945490632233918134194375649128338",
"285381500365220780732336314522906694124",
"230892853373042544822193543082628813654",
"107337557302372161936902500389408962241"
]
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@17afa98bccec4f52203508b3f49b5f948c6fd6ac",
"deprecated": false,
"target": {
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-d5f3f0c0",
"digest": {
"length": 1117.0,
"function_hash": "285062344776960205688574458796107337341"
},
"signature_type": "Function",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8e0681dd4eee029eb1d533d06993f7cb091efb73",
"deprecated": false,
"target": {
"function": "padata_do_parallel",
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-dd6ee52b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"168785247935678690499580415863465362479",
"31711518480246874912556121850460836535",
"197872329326184877655092011820061923894",
"263957974890985122200802498290579672476",
"231340324333252986172510210376028873106",
"208865945490632233918134194375649128338",
"285381500365220780732336314522906694124",
"230892853373042544822193543082628813654",
"107337557302372161936902500389408962241"
]
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7337adb20fcc0aebb50eaff2bc5a8dd9a7c6743d",
"deprecated": false,
"target": {
"file": "kernel/padata.c"
}
},
{
"signature_version": "v1",
"id": "CVE-2022-50382-e6a1833b",
"digest": {
"threshold": 0.9,
"line_hashes": [
"168785247935678690499580415863465362479",
"31711518480246874912556121850460836535",
"197872329326184877655092011820061923894",
"263957974890985122200802498290579672476",
"231340324333252986172510210376028873106",
"208865945490632233918134194375649128338",
"285381500365220780732336314522906694124",
"230892853373042544822193543082628813654",
"107337557302372161936902500389408962241"
]
},
"signature_type": "Line",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@34c3a47d20ae55b3600fed733bf96eafe9c500d5",
"deprecated": false,
"target": {
"file": "kernel/padata.c"
}
}
]
"https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2022-50382.json"