In the Linux kernel, the following vulnerability has been resolved:
RDMA/irdma: Fix sleep from invalid context BUG
Taking the qos_mutex to process RoCEv2 QP's on netdev events causes a kernel splat.
Fix this by removing the handling for RoCEv2 in irdmacmteardown_connections that uses the mutex. This handling is only needed for iWARP to avoid having connections established while the link is down or having connections remain functional after the IP address is removed.
BUG: sleeping function called from invalid context at kernel/locking/mutex. Call Trace: kernel: dumpstack+0x66/0x90 kernel: _mightsleep.cold.92+0x8d/0x9a kernel: mutexlock+0x1c/0x40 kernel: irdmacmteardownconnections+0x28e/0x4d0 [irdma] kernel: ? checkpreemptcurr+0x7a/0x90 kernel: ? selectidlesibling+0x22/0x3c0 kernel: ? selecttaskrqfair+0x94c/0xc90 kernel: ? irdmaexeccqpcmd+0xc27/0x17c0 [irdma] kernel: ? _wakeupcommon+0x7a/0x190 kernel: irdmaifnotify+0x3cc/0x450 [irdma] kernel: ? schedclockcpu+0xc/0xb0 kernel: irdmainet6addr_event+0xc6/0x150 [irdma]
[
{
"id": "CVE-2022-49606-0e602a63",
"deprecated": false,
"digest": {
"line_hashes": [
"110664991026309364244051224846702537288",
"260139769559923813400988180826231893877",
"247779447451869198138959764421693024927",
"277998415367979254825531341055444103866",
"64951744174915985933285361196730899253",
"62296903826577577700977445184013808453",
"97122339666100515080361826497476585550",
"182485382795554884051067737561333577942",
"166324408623976712657846699026380198778",
"42641532797699442704478009950438226386",
"258507379971491928877546201981996231524",
"267860914657954937984617634826660267232",
"86347011719508432796993266642591085011",
"8350629004984711277993715450452467929",
"221979905320050271175853888700174505762",
"133495999364869241543354188886301739620",
"258852382287222833026078336290331727366",
"254177046467892133761835321063344672468",
"46108399072928912991401934760476029360",
"148531238553259065984275031443945630110",
"30362626509425003666690769193749391811",
"221563883610402206724425939799221663175",
"31478099759382088384135502926916322156",
"269481833706358742324616122531637527649",
"232401931238180387125800338381515409341",
"302178032193617722979255151172289182181",
"229888209069633839043737677016397827949",
"74223449361387392473496798112771109622",
"272492784988839826259597090856603460339",
"246545539946327271966451625797785274886",
"247547253370994870235915966968132352622",
"105806145208592638546658012971865301569",
"10360980824383604582126371628977246304",
"95745870176499242107181013586144387350",
"309251562245204107536592663512169283554",
"268844946224881120829727805799073156444",
"250536403939294809026637971386576113597",
"164613601363835538715342153973493719745",
"202485237148298037819390758703349055725",
"200731819504165786059754539949322088834",
"110729037601439766782712350964662861205",
"133535284289861132858929342463131446369",
"106377777342650680235159826520784772557",
"97463339025312302514440078104749009410",
"151148733569953245879210825732048892335",
"317008824754967768022546870525599560883",
"25887507243926208490579002576741709329",
"179281816991821533001841065421834694511",
"137609607562259930996909330041482904220",
"308867504644005980678666093768407130117",
"85713597151317428994225085978318109533"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4c5115140ed1833197bad9a6b80265840ff427f",
"signature_type": "Line"
},
{
"id": "CVE-2022-49606-2dbb4bca",
"deprecated": false,
"digest": {
"length": 1825.0,
"function_hash": "170073842597801790020281087624114875830"
},
"signature_version": "v1",
"target": {
"function": "irdma_cm_teardown_connections",
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cc0315564d6eec91c716d314b743321be24c70b3",
"signature_type": "Function"
},
{
"id": "CVE-2022-49606-3c8dd0cc",
"deprecated": false,
"digest": {
"line_hashes": [
"110664991026309364244051224846702537288",
"260139769559923813400988180826231893877",
"247779447451869198138959764421693024927",
"277998415367979254825531341055444103866",
"64951744174915985933285361196730899253",
"62296903826577577700977445184013808453",
"97122339666100515080361826497476585550",
"182485382795554884051067737561333577942",
"166324408623976712657846699026380198778",
"42641532797699442704478009950438226386",
"258507379971491928877546201981996231524",
"267860914657954937984617634826660267232",
"86347011719508432796993266642591085011",
"8350629004984711277993715450452467929",
"221979905320050271175853888700174505762",
"133495999364869241543354188886301739620",
"258852382287222833026078336290331727366",
"254177046467892133761835321063344672468",
"46108399072928912991401934760476029360",
"148531238553259065984275031443945630110",
"30362626509425003666690769193749391811",
"221563883610402206724425939799221663175",
"31478099759382088384135502926916322156",
"269481833706358742324616122531637527649",
"232401931238180387125800338381515409341",
"302178032193617722979255151172289182181",
"229888209069633839043737677016397827949",
"74223449361387392473496798112771109622",
"272492784988839826259597090856603460339",
"246545539946327271966451625797785274886",
"247547253370994870235915966968132352622",
"105806145208592638546658012971865301569",
"10360980824383604582126371628977246304",
"95745870176499242107181013586144387350",
"309251562245204107536592663512169283554",
"268844946224881120829727805799073156444",
"250536403939294809026637971386576113597",
"164613601363835538715342153973493719745",
"202485237148298037819390758703349055725",
"200731819504165786059754539949322088834",
"110729037601439766782712350964662861205",
"133535284289861132858929342463131446369",
"106377777342650680235159826520784772557",
"97463339025312302514440078104749009410",
"151148733569953245879210825732048892335",
"317008824754967768022546870525599560883",
"25887507243926208490579002576741709329",
"179281816991821533001841065421834694511",
"137609607562259930996909330041482904220",
"308867504644005980678666093768407130117",
"85713597151317428994225085978318109533"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@cc0315564d6eec91c716d314b743321be24c70b3",
"signature_type": "Line"
},
{
"id": "CVE-2022-49606-68def0bf",
"deprecated": false,
"digest": {
"length": 1825.0,
"function_hash": "170073842597801790020281087624114875830"
},
"signature_version": "v1",
"target": {
"function": "irdma_cm_teardown_connections",
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2cae7e519032e4b4672cb9204d5586a441924364",
"signature_type": "Function"
},
{
"id": "CVE-2022-49606-9f2d050e",
"deprecated": false,
"digest": {
"line_hashes": [
"110664991026309364244051224846702537288",
"260139769559923813400988180826231893877",
"247779447451869198138959764421693024927",
"277998415367979254825531341055444103866",
"64951744174915985933285361196730899253",
"62296903826577577700977445184013808453",
"97122339666100515080361826497476585550",
"182485382795554884051067737561333577942",
"166324408623976712657846699026380198778",
"42641532797699442704478009950438226386",
"258507379971491928877546201981996231524",
"267860914657954937984617634826660267232",
"86347011719508432796993266642591085011",
"8350629004984711277993715450452467929",
"221979905320050271175853888700174505762",
"133495999364869241543354188886301739620",
"258852382287222833026078336290331727366",
"254177046467892133761835321063344672468",
"46108399072928912991401934760476029360",
"148531238553259065984275031443945630110",
"30362626509425003666690769193749391811",
"221563883610402206724425939799221663175",
"31478099759382088384135502926916322156",
"269481833706358742324616122531637527649",
"232401931238180387125800338381515409341",
"302178032193617722979255151172289182181",
"229888209069633839043737677016397827949",
"74223449361387392473496798112771109622",
"272492784988839826259597090856603460339",
"246545539946327271966451625797785274886",
"247547253370994870235915966968132352622",
"105806145208592638546658012971865301569",
"10360980824383604582126371628977246304",
"95745870176499242107181013586144387350",
"309251562245204107536592663512169283554",
"268844946224881120829727805799073156444",
"250536403939294809026637971386576113597",
"164613601363835538715342153973493719745",
"202485237148298037819390758703349055725",
"200731819504165786059754539949322088834",
"110729037601439766782712350964662861205",
"133535284289861132858929342463131446369",
"106377777342650680235159826520784772557",
"97463339025312302514440078104749009410",
"151148733569953245879210825732048892335",
"317008824754967768022546870525599560883",
"25887507243926208490579002576741709329",
"179281816991821533001841065421834694511",
"137609607562259930996909330041482904220",
"308867504644005980678666093768407130117",
"85713597151317428994225085978318109533"
],
"threshold": 0.9
},
"signature_version": "v1",
"target": {
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2cae7e519032e4b4672cb9204d5586a441924364",
"signature_type": "Line"
},
{
"id": "CVE-2022-49606-a0afbc3d",
"deprecated": false,
"digest": {
"length": 1825.0,
"function_hash": "170073842597801790020281087624114875830"
},
"signature_version": "v1",
"target": {
"function": "irdma_cm_teardown_connections",
"file": "drivers/infiniband/hw/irdma/cm.c"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@a4c5115140ed1833197bad9a6b80265840ff427f",
"signature_type": "Function"
}
]