In the Linux kernel, the following vulnerability has been resolved:
ASoC: SOF: ipc3-topology: Prevent double freeing of ipccontroldata via load_bytes
We have sanity checks for byte controls and if any of the fail the locally allocated scontrol->ipccontroldata is freed up, but not set to NULL.
On a rollback path of the error the higher level code will also try to free the scontrol->ipccontroldata which will eventually going to lead to memory corruption as double freeing memory is not a good thing.
[
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d5bd47f3ca124058a8e87eae4508afeda2132611",
"target": {
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-43efc33c",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"124997092651764779049992873116039737536",
"37384912343779617859248335467030575551",
"208706136635231830052608562328017459962",
"13089392010430763382918530683453666250"
],
"threshold": 0.9
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8463986b54295e6b65ddf2b7c65627d01ce7643b",
"target": {
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-5417084c",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"124997092651764779049992873116039737536",
"37384912343779617859248335467030575551",
"208706136635231830052608562328017459962",
"13089392010430763382918530683453666250"
],
"threshold": 0.9
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@d5bd47f3ca124058a8e87eae4508afeda2132611",
"target": {
"function": "sof_ipc3_control_load_bytes",
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-6ed02ccc",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "93809534986242980659588050591835352530",
"length": 1527.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c2eddfcafcffaf1b9245ea0dde9143bbfb47d5d1",
"target": {
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-ccd0e73e",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Line",
"digest": {
"line_hashes": [
"124997092651764779049992873116039737536",
"37384912343779617859248335467030575551",
"208706136635231830052608562328017459962",
"13089392010430763382918530683453666250"
],
"threshold": 0.9
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@c2eddfcafcffaf1b9245ea0dde9143bbfb47d5d1",
"target": {
"function": "sof_ipc3_control_load_bytes",
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-e178b922",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "93809534986242980659588050591835352530",
"length": 1527.0
}
},
{
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@8463986b54295e6b65ddf2b7c65627d01ce7643b",
"target": {
"function": "sof_ipc3_control_load_bytes",
"file": "sound/soc/sof/ipc3-topology.c"
},
"id": "CVE-2022-50115-ecad4b46",
"deprecated": false,
"signature_version": "v1",
"signature_type": "Function",
"digest": {
"function_hash": "93809534986242980659588050591835352530",
"length": 1527.0
}
}
]