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.
{ "vanir_signatures": [ { "digest": { "length": 85.0, "function_hash": "184529867321591648848454497588448013331" }, "target": { "function": "hda_cs_dsp_control_remove", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-05d63e8b" }, { "digest": { "length": 860.0, "function_hash": "110910743785747251479778597982401315456" }, "target": { "function": "hda_cs_dsp_add_kcontrol", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-0cf8e5fd" }, { "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 }, "target": { "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@191dc1b2ff0fb35e7aff15a53224837637df8bff", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-24e054f8" }, { "digest": { "length": 994.0, "function_hash": "334329978808061139059162485657355107426" }, "target": { "function": "hda_cs_dsp_control_add", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-28379564" }, { "digest": { "length": 85.0, "function_hash": "184529867321591648848454497588448013331" }, "target": { "function": "hda_cs_dsp_control_remove", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-34b1f838" }, { "digest": { "length": 994.0, "function_hash": "334329978808061139059162485657355107426" }, "target": { "function": "hda_cs_dsp_control_add", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@191dc1b2ff0fb35e7aff15a53224837637df8bff", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-3cfbdd13" }, { "digest": { "length": 860.0, "function_hash": "110910743785747251479778597982401315456" }, "target": { "function": "hda_cs_dsp_add_kcontrol", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-47c7fbd9" }, { "digest": { "length": 85.0, "function_hash": "184529867321591648848454497588448013331" }, "target": { "function": "hda_cs_dsp_control_remove", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-58980646" }, { "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 }, "target": { "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6e359be4975006ff72818e79dad8fe48293f2eb2", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-62493d1f" }, { "digest": { "length": 860.0, "function_hash": "110910743785747251479778597982401315456" }, "target": { "function": "hda_cs_dsp_add_kcontrol", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-693506dc" }, { "digest": { "length": 994.0, "function_hash": "334329978808061139059162485657355107426" }, "target": { "function": "hda_cs_dsp_control_add", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-7646219f" }, { "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 }, "target": { "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-8d8025a0" }, { "digest": { "length": 994.0, "function_hash": "334329978808061139059162485657355107426" }, "target": { "function": "hda_cs_dsp_control_add", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@172811e3a557d8681a5e2d0f871dc04a2d17eb13", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-9a7c3be1" }, { "digest": { "length": 860.0, "function_hash": "110910743785747251479778597982401315456" }, "target": { "function": "hda_cs_dsp_add_kcontrol", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@191dc1b2ff0fb35e7aff15a53224837637df8bff", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-ce070390" }, { "digest": { "length": 85.0, "function_hash": "184529867321591648848454497588448013331" }, "target": { "function": "hda_cs_dsp_control_remove", "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Function", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@191dc1b2ff0fb35e7aff15a53224837637df8bff", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-e0b6c663" }, { "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 }, "target": { "file": "sound/pci/hda/hda_cs_dsp_ctl.c" }, "signature_type": "Line", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@3291486af5636540980ea55bae985f3eaa5b0740", "deprecated": false, "signature_version": "v1", "id": "CVE-2024-38388-eb210520" } ] }