In the Linux kernel, the following vulnerability has been resolved:
net/smc: Avoid overwriting the copies of clcsock callback functions
The callback functions of clcsock will be saved and replaced during the fallback. But if the fallback happens more than once, then the copies of these callback functions will be overwritten incorrectly, resulting in a loop call issue:
clcsk->skerrorreport |- smcfbackerrorreport() <------------------------------| |- smcfbackforwardwakeup() | (loop) |- clcsockcallback() (incorrectly overwritten) | |- smc->clcskerror_report() ------------------|
So this patch fixes the issue by saving these function pointers only once in the fallback and avoiding overwriting.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f00b6c976ae0dfbd9b891175f713f59095d23842",
"target": {
"function": "smc_switch_to_fallback",
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-0b82d4ab",
"signature_version": "v1",
"digest": {
"length": 1197.0,
"function_hash": "312862722644734456509820763395284750483"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7de7ba7a8bd4fde0141de8674c13514d0072f0e6",
"target": {
"function": "smc_switch_to_fallback",
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-3c4274ec",
"signature_version": "v1",
"digest": {
"length": 1168.0,
"function_hash": "277514690307747790470982246835440707082"
},
"signature_type": "Function"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1de9770d121ee9294794cca0e0be8fbfa0134ee8",
"target": {
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-4bad86bc",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"167944346300054745282735736106077428949",
"52405173870688063298651228540148296891",
"64054446620057753046295662126998387234",
"6480936261941358984277808904722432220",
"5126352606281903128004075250628091176",
"275937257363092955009001316919977322815",
"313987029026646669074294026239426245457",
"114041996912457746558376769502518206670",
"321340123823187622476483179417174402089",
"70366721335734935448421416748959610346",
"158455778052937850841668383238229480247",
"246039312177377129672445545922069075733",
"162658445934824173732683495891855891534",
"42125653395252953916891423820540929739",
"334764714684719101552875090230438559717",
"118143521438112921130459211706756666930"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@7de7ba7a8bd4fde0141de8674c13514d0072f0e6",
"target": {
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-5a5bdadc",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"167944346300054745282735736106077428949",
"52405173870688063298651228540148296891",
"64054446620057753046295662126998387234",
"6480936261941358984277808904722432220",
"5126352606281903128004075250628091176",
"275937257363092955009001316919977322815",
"313987029026646669074294026239426245457",
"114041996912457746558376769502518206670",
"321340123823187622476483179417174402089",
"70366721335734935448421416748959610346",
"158455778052937850841668383238229480247",
"246039312177377129672445545922069075733",
"162658445934824173732683495891855891534",
"42125653395252953916891423820540929739",
"334764714684719101552875090230438559717",
"118143521438112921130459211706756666930"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@f00b6c976ae0dfbd9b891175f713f59095d23842",
"target": {
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-c1ab21bd",
"signature_version": "v1",
"digest": {
"threshold": 0.9,
"line_hashes": [
"167944346300054745282735736106077428949",
"52405173870688063298651228540148296891",
"64054446620057753046295662126998387234",
"6480936261941358984277808904722432220",
"5126352606281903128004075250628091176",
"275937257363092955009001316919977322815",
"313987029026646669074294026239426245457",
"114041996912457746558376769502518206670",
"321340123823187622476483179417174402089",
"70366721335734935448421416748959610346",
"158455778052937850841668383238229480247",
"246039312177377129672445545922069075733",
"162658445934824173732683495891855891534",
"42125653395252953916891423820540929739",
"334764714684719101552875090230438559717",
"118143521438112921130459211706756666930"
]
},
"signature_type": "Line"
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@1de9770d121ee9294794cca0e0be8fbfa0134ee8",
"target": {
"function": "smc_switch_to_fallback",
"file": "net/smc/af_smc.c"
},
"deprecated": false,
"id": "CVE-2022-48780-cb1ace47",
"signature_version": "v1",
"digest": {
"length": 1197.0,
"function_hash": "312862722644734456509820763395284750483"
},
"signature_type": "Function"
}
]