In the Linux kernel, the following vulnerability has been resolved:
drivers: usb: host: Fix deadlock in oxubussuspend()
There is a deadlock in oxubussuspend(), which is shown below:
(Thread 1) | (Thread 2) | timeraction() oxubussuspend() | modtimer() spinlockirq() //(1) | (wait a time) ... | oxuwatchdog() deltimersync() | spinlock_irq() //(2) (wait timer to stop) | ...
We hold oxu->lock in position (1) of thread 1, and use deltimersync() to wait timer to stop, but timer handler also need oxu->lock in position (2) of thread 2. As a result, oxubussuspend() will block forever.
This patch extracts deltimersync() from the protection of spinlockirq(), which could let timer handler to obtain the needed lock.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b58d255f27b0ed6a2e43208960864d67579db58",
"id": "CVE-2022-49313-10b12e00",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d888753872190abd18f68a7d77b9c7c367f0a7ab",
"id": "CVE-2022-49313-146a44d8",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b97aae8b43b718314012e8170b7e03dbfd2e7677",
"id": "CVE-2022-49313-1ba309ce",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2dcec0bc142be2096af71a5703d63237127db204",
"id": "CVE-2022-49313-1cfdc010",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d888753872190abd18f68a7d77b9c7c367f0a7ab",
"id": "CVE-2022-49313-1eca0df0",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@9b58d255f27b0ed6a2e43208960864d67579db58",
"id": "CVE-2022-49313-37a8371e",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f8242044c91cafbba9e320b0fb31abf2429a3221",
"id": "CVE-2022-49313-3a99f9ea",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ffe9440d698274c6462d2e304562c6ddfc8c84df",
"id": "CVE-2022-49313-458b5e0b",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4d378f2ae58138d4c55684e1d274e7dd94aa6524",
"id": "CVE-2022-49313-49696bde",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3d380188bde8900c3f604e82b56572896499124",
"id": "CVE-2022-49313-5039536e",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@ffe9440d698274c6462d2e304562c6ddfc8c84df",
"id": "CVE-2022-49313-91a4f4dd",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2dcec0bc142be2096af71a5703d63237127db204",
"id": "CVE-2022-49313-b51c6cdf",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4187b291a76664a3c03d3f0d9bfadc8322881868",
"id": "CVE-2022-49313-b7f85947",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4187b291a76664a3c03d3f0d9bfadc8322881868",
"id": "CVE-2022-49313-bae3ffa7",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f8242044c91cafbba9e320b0fb31abf2429a3221",
"id": "CVE-2022-49313-ceaec5d0",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@4d378f2ae58138d4c55684e1d274e7dd94aa6524",
"id": "CVE-2022-49313-d882fe55",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b97aae8b43b718314012e8170b7e03dbfd2e7677",
"id": "CVE-2022-49313-deba287b",
"deprecated": false,
"signature_version": "v1",
"target": {
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Line",
"digest": {
"threshold": 0.9,
"line_hashes": [
"334453320020006152974206807380609933130",
"30430102246470899046762557817288273465",
"58107969509679214350845676800629938782",
"292823456043099047069605325895642743313"
]
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a3d380188bde8900c3f604e82b56572896499124",
"id": "CVE-2022-49313-f3997a3b",
"deprecated": false,
"signature_version": "v1",
"target": {
"function": "oxu_bus_suspend",
"file": "drivers/usb/host/oxu210hp-hcd.c"
},
"signature_type": "Function",
"digest": {
"length": 1477.0,
"function_hash": "263265245987240831495764452496500535133"
}
}
]