In the Linux kernel, the following vulnerability has been resolved:
Input: iforce - wake up after clearing IFORCEXMITRUNNING flag
syzbot is reporting hung task at _inputunregisterdevice() [1], for iforceclose() waiting at waiteventinterruptible() with dev->mutex held is blocking inputdisconnectdevice() from _inputunregister_device().
It seems that the cause is simply that commit c2b27ef672992a20 ("Input: iforce - wait for command completion when closing the device") forgot to call wakeup() after clearbit().
Fix this problem by introducing a helper that calls clearbit() followed by wakeup_all().
{
"cna_assigner": "Linux",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2022/49xxx/CVE-2022-49954.json"
}[
{
"id": "CVE-2022-49954-1ee2770f",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c",
"function": "iforce_serio_xmit"
},
"digest": {
"length": 1244.0,
"function_hash": "325223829706604312575813559805632151919"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
},
{
"id": "CVE-2022-49954-26aa291e",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "iforce_usb_out"
},
"digest": {
"length": 328.0,
"function_hash": "113928536229582104646150284325173295556"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-2c05bb92",
"target": {
"file": "drivers/input/joystick/iforce/iforce.h"
},
"digest": {
"line_hashes": [
"283507900895180958718601773920078213623",
"314593910425815197734551145007316636099",
"322146129819543951151141454820651291478"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-2e314b31",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c",
"function": "iforce_serio_xmit"
},
"digest": {
"length": 1244.0,
"function_hash": "325223829706604312575813559805632151919"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-306c2d62",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "__iforce_usb_xmit"
},
"digest": {
"length": 1350.0,
"function_hash": "281603539485075581652910824761714633293"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-3a539a7f",
"target": {
"file": "drivers/input/joystick/iforce/iforce.h"
},
"digest": {
"line_hashes": [
"283507900895180958718601773920078213623",
"314593910425815197734551145007316636099",
"322146129819543951151141454820651291478"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-3e29effe",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c"
},
"digest": {
"line_hashes": [
"258535065758869714315409138620896695795",
"4964116321976281555565115846848816915",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"286954038161225612011485954893536303599",
"118439048018715025917323733600836033691",
"149844895486508129402093369370027000526",
"152298209710255713363674390921199522799",
"11995270803692022327070422385562960239",
"119461686039532020304071999113996271167",
"1037469750383217611262125358538386315",
"50106274916945850996376768116977807217",
"34142384381507338363777338216958292483",
"122830366852247258082887359745211740490",
"27390052399009362327344941572921552326",
"50515142749822051006440090152013135829",
"299417715767253009500664454240077726714",
"175383109267132515853287509192691232281",
"232254699866168464723032914205177520178",
"269258342223605235097809902333511944070"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-3f5d9d0f",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "__iforce_usb_xmit"
},
"digest": {
"length": 1350.0,
"function_hash": "281603539485075581652910824761714633293"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-43ebf0d4",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "__iforce_usb_xmit"
},
"digest": {
"length": 1350.0,
"function_hash": "281603539485075581652910824761714633293"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
},
{
"id": "CVE-2022-49954-4887388f",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c",
"function": "iforce_serio_xmit"
},
"digest": {
"length": 1244.0,
"function_hash": "325223829706604312575813559805632151919"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-51f5840f",
"target": {
"file": "drivers/input/joystick/iforce/iforce.h"
},
"digest": {
"line_hashes": [
"283507900895180958718601773920078213623",
"314593910425815197734551145007316636099",
"322146129819543951151141454820651291478"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
},
{
"id": "CVE-2022-49954-5c56b36a",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "iforce_usb_out"
},
"digest": {
"length": 328.0,
"function_hash": "113928536229582104646150284325173295556"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-6c9e43ea",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "__iforce_usb_xmit"
},
"digest": {
"length": 1350.0,
"function_hash": "281603539485075581652910824761714633293"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-70311746",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c"
},
"digest": {
"line_hashes": [
"258535065758869714315409138620896695795",
"4964116321976281555565115846848816915",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"286954038161225612011485954893536303599",
"118439048018715025917323733600836033691",
"149844895486508129402093369370027000526",
"152298209710255713363674390921199522799",
"11995270803692022327070422385562960239",
"119461686039532020304071999113996271167",
"1037469750383217611262125358538386315",
"50106274916945850996376768116977807217",
"34142384381507338363777338216958292483",
"122830366852247258082887359745211740490",
"27390052399009362327344941572921552326",
"50515142749822051006440090152013135829",
"299417715767253009500664454240077726714",
"175383109267132515853287509192691232281",
"232254699866168464723032914205177520178",
"269258342223605235097809902333511944070"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-7396d339",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c"
},
"digest": {
"line_hashes": [
"258535065758869714315409138620896695795",
"4964116321976281555565115846848816915",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"286954038161225612011485954893536303599",
"118439048018715025917323733600836033691",
"149844895486508129402093369370027000526",
"152298209710255713363674390921199522799",
"11995270803692022327070422385562960239",
"119461686039532020304071999113996271167",
"1037469750383217611262125358538386315",
"50106274916945850996376768116977807217",
"34142384381507338363777338216958292483",
"122830366852247258082887359745211740490",
"27390052399009362327344941572921552326",
"50515142749822051006440090152013135829",
"299417715767253009500664454240077726714",
"175383109267132515853287509192691232281",
"232254699866168464723032914205177520178",
"269258342223605235097809902333511944070"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-78aea9ab",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c"
},
"digest": {
"line_hashes": [
"111946244691096836377233876481689666998",
"174549027022471975047250036878375848283",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"151279338040214095081183349950516000681",
"247141757042868212273900380102616844548",
"334757542101267135284140922490554484985",
"160835422106141431403989028726207662338",
"40302348791582879486076638182210695257",
"327651148843449016444946976859761110093",
"170751106619693146611189609550240771550",
"334187854861150568839114389649081970139"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-9ddf898d",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c"
},
"digest": {
"line_hashes": [
"111946244691096836377233876481689666998",
"174549027022471975047250036878375848283",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"151279338040214095081183349950516000681",
"247141757042868212273900380102616844548",
"334757542101267135284140922490554484985",
"160835422106141431403989028726207662338",
"40302348791582879486076638182210695257",
"327651148843449016444946976859761110093",
"170751106619693146611189609550240771550",
"334187854861150568839114389649081970139"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-9f2d2340",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "iforce_usb_out"
},
"digest": {
"length": 328.0,
"function_hash": "113928536229582104646150284325173295556"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-a136db6a",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c",
"function": "iforce_serio_xmit"
},
"digest": {
"length": 1244.0,
"function_hash": "325223829706604312575813559805632151919"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-a69ba72f",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c"
},
"digest": {
"line_hashes": [
"258535065758869714315409138620896695795",
"4964116321976281555565115846848816915",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"286954038161225612011485954893536303599",
"118439048018715025917323733600836033691",
"149844895486508129402093369370027000526",
"152298209710255713363674390921199522799",
"11995270803692022327070422385562960239",
"119461686039532020304071999113996271167",
"1037469750383217611262125358538386315",
"50106274916945850996376768116977807217",
"34142384381507338363777338216958292483",
"122830366852247258082887359745211740490",
"27390052399009362327344941572921552326",
"50515142749822051006440090152013135829",
"299417715767253009500664454240077726714",
"175383109267132515853287509192691232281",
"232254699866168464723032914205177520178",
"269258342223605235097809902333511944070"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
},
{
"id": "CVE-2022-49954-a84c099a",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "iforce_usb_out"
},
"digest": {
"length": 328.0,
"function_hash": "113928536229582104646150284325173295556"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-ad932443",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "__iforce_usb_xmit"
},
"digest": {
"length": 1350.0,
"function_hash": "281603539485075581652910824761714633293"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-b063d48f",
"target": {
"file": "drivers/input/joystick/iforce/iforce.h"
},
"digest": {
"line_hashes": [
"283507900895180958718601773920078213623",
"314593910425815197734551145007316636099",
"322146129819543951151141454820651291478"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-bbe3a31d",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c",
"function": "iforce_serio_xmit"
},
"digest": {
"length": 1244.0,
"function_hash": "325223829706604312575813559805632151919"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-bce2b1f2",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c"
},
"digest": {
"line_hashes": [
"111946244691096836377233876481689666998",
"174549027022471975047250036878375848283",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"151279338040214095081183349950516000681",
"247141757042868212273900380102616844548",
"334757542101267135284140922490554484985",
"160835422106141431403989028726207662338",
"40302348791582879486076638182210695257",
"327651148843449016444946976859761110093",
"170751106619693146611189609550240771550",
"334187854861150568839114389649081970139"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b271090eea3899399e2adcf79c9c95367d472b03"
},
{
"id": "CVE-2022-49954-d59057cd",
"target": {
"file": "drivers/input/joystick/iforce/iforce.h"
},
"digest": {
"line_hashes": [
"283507900895180958718601773920078213623",
"314593910425815197734551145007316636099",
"322146129819543951151141454820651291478"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@98e01215708b6d416345465c09dce2bd4868c67a"
},
{
"id": "CVE-2022-49954-da6940a3",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c",
"function": "iforce_usb_out"
},
"digest": {
"length": 328.0,
"function_hash": "113928536229582104646150284325173295556"
},
"deprecated": false,
"signature_type": "Function",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
},
{
"id": "CVE-2022-49954-e43d5b06",
"target": {
"file": "drivers/input/joystick/iforce/iforce-usb.c"
},
"digest": {
"line_hashes": [
"258535065758869714315409138620896695795",
"4964116321976281555565115846848816915",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"286954038161225612011485954893536303599",
"118439048018715025917323733600836033691",
"149844895486508129402093369370027000526",
"152298209710255713363674390921199522799",
"11995270803692022327070422385562960239",
"119461686039532020304071999113996271167",
"1037469750383217611262125358538386315",
"50106274916945850996376768116977807217",
"34142384381507338363777338216958292483",
"122830366852247258082887359745211740490",
"27390052399009362327344941572921552326",
"50515142749822051006440090152013135829",
"299417715767253009500664454240077726714",
"175383109267132515853287509192691232281",
"232254699866168464723032914205177520178",
"269258342223605235097809902333511944070"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@b533b9d3a0d1327cbb31c201dc8dbbf98c8bfe3c"
},
{
"id": "CVE-2022-49954-ed260265",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c"
},
"digest": {
"line_hashes": [
"111946244691096836377233876481689666998",
"174549027022471975047250036878375848283",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"151279338040214095081183349950516000681",
"247141757042868212273900380102616844548",
"334757542101267135284140922490554484985",
"160835422106141431403989028726207662338",
"40302348791582879486076638182210695257",
"327651148843449016444946976859761110093",
"170751106619693146611189609550240771550",
"334187854861150568839114389649081970139"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d186c65599bff0222da37b9215784ddfe39f9e1b"
},
{
"id": "CVE-2022-49954-f8226b26",
"target": {
"file": "drivers/input/joystick/iforce/iforce-serio.c"
},
"digest": {
"line_hashes": [
"111946244691096836377233876481689666998",
"174549027022471975047250036878375848283",
"48292929216994518684036741618269920105",
"111300427342695793491448964899655051263",
"151279338040214095081183349950516000681",
"247141757042868212273900380102616844548",
"334757542101267135284140922490554484985",
"160835422106141431403989028726207662338",
"40302348791582879486076638182210695257",
"327651148843449016444946976859761110093",
"170751106619693146611189609550240771550",
"334187854861150568839114389649081970139"
],
"threshold": 0.9
},
"deprecated": false,
"signature_type": "Line",
"signature_version": "v1",
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@df1b53bc799d58f79701c465505a206c72ad4ab8"
}
]