In the Linux kernel, the following vulnerability has been resolved:
ALSA: hda/csdspctl: Use private_free for control cleanup
Use the control private_free callback to free the associated data block. This ensures that the memory won't leak, whatever way the control gets destroyed.
The original implementation didn't actually remove the ALSA controls in hdacsdspcontrolremove(). It only freed the internal tracking structure. This meant it was possible to remove/unload the amp driver while leaving its ALSA controls still present in the soundcard. Obviously attempting to access them could cause segfaults or at least dereferencing stale pointers.
[
{
"digest": {
"length": 85.0,
"function_hash": "184529867321591648848454497588448013331"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_remove",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-05d63e8b",
"signature_type": "Function"
},
{
"digest": {
"length": 860.0,
"function_hash": "110910743785747251479778597982401315456"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_add_kcontrol",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-0cf8e5fd",
"signature_type": "Function"
},
{
"digest": {
"length": 994.0,
"function_hash": "334329978808061139059162485657355107426"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_add",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-28379564",
"signature_type": "Function"
},
{
"digest": {
"length": 85.0,
"function_hash": "184529867321591648848454497588448013331"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_remove",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-34b1f838",
"signature_type": "Function"
},
{
"digest": {
"length": 860.0,
"function_hash": "110910743785747251479778597982401315456"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_add_kcontrol",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-47c7fbd9",
"signature_type": "Function"
},
{
"digest": {
"length": 85.0,
"function_hash": "184529867321591648848454497588448013331"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_remove",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-58980646",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"82305389167238588618741565159203419806",
"274704770385510432300321556877520040999",
"121213651121791835501097549373836187390",
"86912459370956624006171528007426723125",
"168923445024026009563937617426532965367",
"69909119391811914032114497317951300232",
"208640262402593377997697320028299114518",
"36170917808475142913871713095988772856",
"200710621718229804556863927080045683487",
"103652904395198323812555537158648192664",
"269243244076439368946418109736805300420",
"225481667666464923879493308783695440545",
"203344442669194797248736878427061548018",
"200031720141735654227253172473515316414",
"119112859086686824159035009335680136695",
"214545612514034197538434282705505391452",
"242069390422519832970788561343077453101",
"41118564849206784510465215117961429759",
"62527126661214536694614122184634538018",
"219041027997379402998853516185112353711",
"319861451918731333906608966206219488999",
"48753661440361771887805148352756859359",
"88003977171591573997778853534079210711",
"219846566171416006638374588111114814899",
"18325378354329123858362529359430665963",
"222305545036300119757199029491827376796",
"196928947564194178213904773623572088652",
"292633975836484577665966094103345942659",
"293733203014534872160338519294845827081",
"325726028574714323751315855469608083067",
"310490631461938804479391168144748620156",
"112129766877318665892031114480726741761",
"304673767298101922571614685245625049618",
"196065605853873133995035286160946754211",
"324375982010981846922088592258100105204",
"187149738068523794604400132549803243303",
"183201359914991437961200912677273703865",
"313493428779461625318110959557295589449",
"252615720184228174143791126348203839174",
"256950694021250246874437092898643402304",
"81405840595769310925114032863508503862",
"110426032881237125757709549559088165109",
"100516423495761567152164637568732173146",
"71496129069303711665349781654907569537"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-62493d1f",
"signature_type": "Line"
},
{
"digest": {
"length": 860.0,
"function_hash": "110910743785747251479778597982401315456"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_add_kcontrol",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-693506dc",
"signature_type": "Function"
},
{
"digest": {
"length": 994.0,
"function_hash": "334329978808061139059162485657355107426"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_add",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-7646219f",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"82305389167238588618741565159203419806",
"274704770385510432300321556877520040999",
"121213651121791835501097549373836187390",
"86912459370956624006171528007426723125",
"168923445024026009563937617426532965367",
"69909119391811914032114497317951300232",
"208640262402593377997697320028299114518",
"36170917808475142913871713095988772856",
"200710621718229804556863927080045683487",
"103652904395198323812555537158648192664",
"269243244076439368946418109736805300420",
"225481667666464923879493308783695440545",
"203344442669194797248736878427061548018",
"200031720141735654227253172473515316414",
"119112859086686824159035009335680136695",
"214545612514034197538434282705505391452",
"242069390422519832970788561343077453101",
"41118564849206784510465215117961429759",
"62527126661214536694614122184634538018",
"219041027997379402998853516185112353711",
"319861451918731333906608966206219488999",
"48753661440361771887805148352756859359",
"88003977171591573997778853534079210711",
"219846566171416006638374588111114814899",
"18325378354329123858362529359430665963",
"222305545036300119757199029491827376796",
"196928947564194178213904773623572088652",
"292633975836484577665966094103345942659",
"293733203014534872160338519294845827081",
"325726028574714323751315855469608083067",
"310490631461938804479391168144748620156",
"112129766877318665892031114480726741761",
"304673767298101922571614685245625049618",
"196065605853873133995035286160946754211",
"324375982010981846922088592258100105204",
"187149738068523794604400132549803243303",
"183201359914991437961200912677273703865",
"313493428779461625318110959557295589449",
"252615720184228174143791126348203839174",
"256950694021250246874437092898643402304",
"81405840595769310925114032863508503862",
"110426032881237125757709549559088165109",
"100516423495761567152164637568732173146",
"71496129069303711665349781654907569537"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-8d8025a0",
"signature_type": "Line"
},
{
"digest": {
"length": 994.0,
"function_hash": "334329978808061139059162485657355107426"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13",
"signature_version": "v1",
"deprecated": false,
"target": {
"function": "hda_cs_dsp_control_add",
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-9a7c3be1",
"signature_type": "Function"
},
{
"digest": {
"line_hashes": [
"82305389167238588618741565159203419806",
"274704770385510432300321556877520040999",
"121213651121791835501097549373836187390",
"86912459370956624006171528007426723125",
"168923445024026009563937617426532965367",
"69909119391811914032114497317951300232",
"208640262402593377997697320028299114518",
"36170917808475142913871713095988772856",
"200710621718229804556863927080045683487",
"103652904395198323812555537158648192664",
"269243244076439368946418109736805300420",
"225481667666464923879493308783695440545",
"203344442669194797248736878427061548018",
"200031720141735654227253172473515316414",
"119112859086686824159035009335680136695",
"214545612514034197538434282705505391452",
"242069390422519832970788561343077453101",
"41118564849206784510465215117961429759",
"62527126661214536694614122184634538018",
"219041027997379402998853516185112353711",
"319861451918731333906608966206219488999",
"48753661440361771887805148352756859359",
"88003977171591573997778853534079210711",
"219846566171416006638374588111114814899",
"18325378354329123858362529359430665963",
"222305545036300119757199029491827376796",
"196928947564194178213904773623572088652",
"292633975836484577665966094103345942659",
"293733203014534872160338519294845827081",
"325726028574714323751315855469608083067",
"310490631461938804479391168144748620156",
"112129766877318665892031114480726741761",
"304673767298101922571614685245625049618",
"196065605853873133995035286160946754211",
"324375982010981846922088592258100105204",
"187149738068523794604400132549803243303",
"183201359914991437961200912677273703865",
"313493428779461625318110959557295589449",
"252615720184228174143791126348203839174",
"256950694021250246874437092898643402304",
"81405840595769310925114032863508503862",
"110426032881237125757709549559088165109",
"100516423495761567152164637568732173146",
"71496129069303711665349781654907569537"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740",
"signature_version": "v1",
"deprecated": false,
"target": {
"file": "sound/pci/hda/hda_cs_dsp_ctl.c"
},
"id": "CVE-2024-38388-eb210520",
"signature_type": "Line"
}
]