In the Linux kernel, the following vulnerability has been resolved:
firmware: cs_dsp: Prevent buffer overrun when processing V2 alg headers
Check that all fields of a V2 algorithm header fit into the available firmware data buffer.
The wmfw V2 format introduced variable-length strings in the algorithm block header. This means the overall header length is variable, and the position of most fields varies depending on the length of the string fields. Each field must be checked to ensure that it does not overflow the firmware data buffer.
As this ia bugfix patch, the fixes avoid making any significant change to the existing code. This makes it easier to review and less likely to introduce new bugs.
[
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"302535473224740329979257828318202427884",
"47161228136916583389651447001619225979",
"281220477157199334001236338679625799929",
"214476254531557119746762040526704188204",
"257298282125229479911983219725559397093",
"216619482238430744705604351290969687010",
"210952407595067230272731611216657999530",
"56663622667902661650297340258029737751",
"87925144340690945514931972502458888020",
"245962849974629207584766675566107337062",
"6640938504356384535625393526210249",
"230819785430963255975090186724379591128",
"43217754750219358476249520256112513603",
"184777014093369906117725163656899385253",
"234286845245421602319544785548443184899",
"238237215111980918867318971676102469862",
"235411462526443547691419736793272222234",
"29860096413300333977689021784619395808",
"307165737978708578213841322971201169568",
"199193563080088995927870409724328579679",
"108049583344397531024893288941173186147",
"199534963061490532371310380524143612638",
"89582545178771476009898376846037548379",
"1210002940173882864674209677623173940",
"89512913474503318154634931876854221282",
"185173035725853388156040619549187635213",
"260866314401500272208534697778067482797",
"203329086530426778346968357943866957871",
"122428274997355347990296185227387764481",
"290434285888836716439520089230934952534",
"326220037032489635916602324084551840382",
"95899842746094782830162675285879853516",
"320877814490028842209203504526483697429",
"180996430025501196841781386014556373815",
"75617147953475543061365146900300358228",
"205163752289590128221893117893078999054",
"277704732293632829368791121975107463064",
"315725405121651448377203270666397280530",
"87161149820643948828822645480707861434",
"153504764215547719790195105095233584759",
"310701520044142227911709878246318247183",
"273005915635055084897029909523212050361",
"191756968641900778983885619328756734732",
"231913418475417496405080543507722967923",
"239788368423870632726202887954751823267",
"167489649927371604090124716147177235903",
"235769897525706279937219379146198959713",
"14093064773035136046900398712105290473",
"305827516323278040797297688836537264730",
"218633851329334101144925947441626773776",
"137451235563450928376793618028288871180",
"112314866947726539845208220763508195554",
"288780173515398839063257418388113715926",
"11227971027702932148703560022391119687",
"287250604247510279790309215411963952896",
"173695966434545077787549318505661132040",
"60403342162355175004679778365685302434",
"96321279450449511315013087041068590460",
"47539186479106999367788665360693922076",
"291080703300930521724306813207119797193",
"116799636889719334953211713780295442124",
"261516561042428774317157455892227651054",
"245902050430435944888563561646552948512",
"30432538466354987516190240465221129680",
"195639207982640997736721144652084484307",
"96935734094970963166642452690003026618",
"188786515580918497257357957129189858864",
"247160993059460557640729451603601895205",
"128796568311854991371436659873570585847",
"121450372433711144900343225728509249497",
"143110249801395683417873959967301882556",
"9442636808240473422170350041545139512",
"212577362392528115914147394735468192146",
"46118249536172861307039464675573263024",
"73558330998069049328696820965465224132",
"106416264314375084054030583149407171194",
"121492739381763455632462399529815291352",
"122486983818072623548205402469381540798",
"293399907366817195781056308602557947065",
"56636550661558499893311970357340194953",
"330984048068593860754886270018768176045"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@014239b9971d79421a0ba652579e1ca1b7b57b6d",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c"
},
"id": "CVE-2024-41038-0c70dbed"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 341.0,
"function_hash": "34907605540214209512714271372415009848"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@014239b9971d79421a0ba652579e1ca1b7b57b6d",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_string"
},
"id": "CVE-2024-41038-15a206a0"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1711.0,
"function_hash": "30494002500202634419193403004792062582"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2163aff6bebbb752edf73f79700f5e2095f3559e",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_coeff"
},
"id": "CVE-2024-41038-183368b6"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 873.0,
"function_hash": "79423649848494561721540673691435445070"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6619aa48a011364e9f29083cc76368e6acfe5b11",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_alg"
},
"id": "CVE-2024-41038-2f2433fa"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"302535473224740329979257828318202427884",
"47161228136916583389651447001619225979",
"281220477157199334001236338679625799929",
"214476254531557119746762040526704188204",
"257298282125229479911983219725559397093",
"216619482238430744705604351290969687010",
"210952407595067230272731611216657999530",
"56663622667902661650297340258029737751",
"87925144340690945514931972502458888020",
"245962849974629207584766675566107337062",
"6640938504356384535625393526210249",
"230819785430963255975090186724379591128",
"43217754750219358476249520256112513603",
"184777014093369906117725163656899385253",
"234286845245421602319544785548443184899",
"238237215111980918867318971676102469862",
"235411462526443547691419736793272222234",
"29860096413300333977689021784619395808",
"307165737978708578213841322971201169568",
"199193563080088995927870409724328579679",
"108049583344397531024893288941173186147",
"199534963061490532371310380524143612638",
"89582545178771476009898376846037548379",
"1210002940173882864674209677623173940",
"89512913474503318154634931876854221282",
"185173035725853388156040619549187635213",
"260866314401500272208534697778067482797",
"203329086530426778346968357943866957871",
"122428274997355347990296185227387764481",
"290434285888836716439520089230934952534",
"326220037032489635916602324084551840382",
"95899842746094782830162675285879853516",
"320877814490028842209203504526483697429",
"180996430025501196841781386014556373815",
"75617147953475543061365146900300358228",
"205163752289590128221893117893078999054",
"277704732293632829368791121975107463064",
"315725405121651448377203270666397280530",
"87161149820643948828822645480707861434",
"153504764215547719790195105095233584759",
"310701520044142227911709878246318247183",
"273005915635055084897029909523212050361",
"191756968641900778983885619328756734732",
"231913418475417496405080543507722967923",
"239788368423870632726202887954751823267",
"167489649927371604090124716147177235903",
"235769897525706279937219379146198959713",
"14093064773035136046900398712105290473",
"305827516323278040797297688836537264730",
"218633851329334101144925947441626773776",
"137451235563450928376793618028288871180",
"112314866947726539845208220763508195554",
"288780173515398839063257418388113715926",
"11227971027702932148703560022391119687",
"287250604247510279790309215411963952896",
"173695966434545077787549318505661132040",
"60403342162355175004679778365685302434",
"96321279450449511315013087041068590460",
"47539186479106999367788665360693922076",
"291080703300930521724306813207119797193",
"116799636889719334953211713780295442124",
"261516561042428774317157455892227651054",
"245902050430435944888563561646552948512",
"30432538466354987516190240465221129680",
"195639207982640997736721144652084484307",
"96935734094970963166642452690003026618",
"188786515580918497257357957129189858864",
"247160993059460557640729451603601895205",
"128796568311854991371436659873570585847",
"121450372433711144900343225728509249497",
"143110249801395683417873959967301882556",
"9442636808240473422170350041545139512",
"212577362392528115914147394735468192146",
"46118249536172861307039464675573263024",
"73558330998069049328696820965465224132",
"106416264314375084054030583149407171194",
"121492739381763455632462399529815291352",
"122486983818072623548205402469381540798",
"293399907366817195781056308602557947065",
"56636550661558499893311970357340194953",
"330984048068593860754886270018768176045"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6619aa48a011364e9f29083cc76368e6acfe5b11",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c"
},
"id": "CVE-2024-41038-3390c319"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1711.0,
"function_hash": "30494002500202634419193403004792062582"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@014239b9971d79421a0ba652579e1ca1b7b57b6d",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_coeff"
},
"id": "CVE-2024-41038-4c418cc7"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1433.0,
"function_hash": "122428651374265067191718714646454142791"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@76ea8e13aaefdfda6e5601323d6ea5340359dcfa",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_parse_coeff"
},
"id": "CVE-2024-41038-4ded6fa3"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1711.0,
"function_hash": "30494002500202634419193403004792062582"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@76ea8e13aaefdfda6e5601323d6ea5340359dcfa",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_coeff"
},
"id": "CVE-2024-41038-5b10f04c"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 873.0,
"function_hash": "79423649848494561721540673691435445070"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2163aff6bebbb752edf73f79700f5e2095f3559e",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_alg"
},
"id": "CVE-2024-41038-7534de4a"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"302535473224740329979257828318202427884",
"47161228136916583389651447001619225979",
"281220477157199334001236338679625799929",
"214476254531557119746762040526704188204",
"257298282125229479911983219725559397093",
"216619482238430744705604351290969687010",
"210952407595067230272731611216657999530",
"56663622667902661650297340258029737751",
"87925144340690945514931972502458888020",
"245962849974629207584766675566107337062",
"6640938504356384535625393526210249",
"230819785430963255975090186724379591128",
"43217754750219358476249520256112513603",
"184777014093369906117725163656899385253",
"234286845245421602319544785548443184899",
"238237215111980918867318971676102469862",
"235411462526443547691419736793272222234",
"29860096413300333977689021784619395808",
"307165737978708578213841322971201169568",
"199193563080088995927870409724328579679",
"108049583344397531024893288941173186147",
"199534963061490532371310380524143612638",
"89582545178771476009898376846037548379",
"1210002940173882864674209677623173940",
"89512913474503318154634931876854221282",
"185173035725853388156040619549187635213",
"260866314401500272208534697778067482797",
"203329086530426778346968357943866957871",
"122428274997355347990296185227387764481",
"290434285888836716439520089230934952534",
"326220037032489635916602324084551840382",
"95899842746094782830162675285879853516",
"320877814490028842209203504526483697429",
"180996430025501196841781386014556373815",
"75617147953475543061365146900300358228",
"205163752289590128221893117893078999054",
"277704732293632829368791121975107463064",
"315725405121651448377203270666397280530",
"87161149820643948828822645480707861434",
"153504764215547719790195105095233584759",
"310701520044142227911709878246318247183",
"273005915635055084897029909523212050361",
"191756968641900778983885619328756734732",
"231913418475417496405080543507722967923",
"239788368423870632726202887954751823267",
"167489649927371604090124716147177235903",
"235769897525706279937219379146198959713",
"14093064773035136046900398712105290473",
"305827516323278040797297688836537264730",
"218633851329334101144925947441626773776",
"137451235563450928376793618028288871180",
"112314866947726539845208220763508195554",
"288780173515398839063257418388113715926",
"11227971027702932148703560022391119687",
"287250604247510279790309215411963952896",
"173695966434545077787549318505661132040",
"60403342162355175004679778365685302434",
"96321279450449511315013087041068590460",
"47539186479106999367788665360693922076",
"291080703300930521724306813207119797193",
"116799636889719334953211713780295442124",
"261516561042428774317157455892227651054",
"245902050430435944888563561646552948512",
"30432538466354987516190240465221129680",
"195639207982640997736721144652084484307",
"96935734094970963166642452690003026618",
"188786515580918497257357957129189858864",
"247160993059460557640729451603601895205",
"128796568311854991371436659873570585847",
"121450372433711144900343225728509249497",
"143110249801395683417873959967301882556",
"9442636808240473422170350041545139512",
"212577362392528115914147394735468192146",
"46118249536172861307039464675573263024",
"73558330998069049328696820965465224132",
"106416264314375084054030583149407171194",
"121492739381763455632462399529815291352",
"122486983818072623548205402469381540798",
"293399907366817195781056308602557947065",
"56636550661558499893311970357340194953",
"330984048068593860754886270018768176045"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2163aff6bebbb752edf73f79700f5e2095f3559e",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c"
},
"id": "CVE-2024-41038-789b9557"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 873.0,
"function_hash": "79423649848494561721540673691435445070"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@76ea8e13aaefdfda6e5601323d6ea5340359dcfa",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_alg"
},
"id": "CVE-2024-41038-7b679853"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 341.0,
"function_hash": "34907605540214209512714271372415009848"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2163aff6bebbb752edf73f79700f5e2095f3559e",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_string"
},
"id": "CVE-2024-41038-8703f145"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 341.0,
"function_hash": "34907605540214209512714271372415009848"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@76ea8e13aaefdfda6e5601323d6ea5340359dcfa",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_string"
},
"id": "CVE-2024-41038-93c7d162"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 873.0,
"function_hash": "79423649848494561721540673691435445070"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@014239b9971d79421a0ba652579e1ca1b7b57b6d",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_alg"
},
"id": "CVE-2024-41038-9bb7adbe"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1433.0,
"function_hash": "122428651374265067191718714646454142791"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@014239b9971d79421a0ba652579e1ca1b7b57b6d",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_parse_coeff"
},
"id": "CVE-2024-41038-abaf686f"
},
{
"signature_type": "Line",
"deprecated": false,
"signature_version": "v1",
"digest": {
"line_hashes": [
"302535473224740329979257828318202427884",
"47161228136916583389651447001619225979",
"281220477157199334001236338679625799929",
"214476254531557119746762040526704188204",
"257298282125229479911983219725559397093",
"216619482238430744705604351290969687010",
"210952407595067230272731611216657999530",
"56663622667902661650297340258029737751",
"87925144340690945514931972502458888020",
"245962849974629207584766675566107337062",
"6640938504356384535625393526210249",
"230819785430963255975090186724379591128",
"43217754750219358476249520256112513603",
"184777014093369906117725163656899385253",
"234286845245421602319544785548443184899",
"238237215111980918867318971676102469862",
"235411462526443547691419736793272222234",
"29860096413300333977689021784619395808",
"307165737978708578213841322971201169568",
"199193563080088995927870409724328579679",
"108049583344397531024893288941173186147",
"199534963061490532371310380524143612638",
"89582545178771476009898376846037548379",
"1210002940173882864674209677623173940",
"89512913474503318154634931876854221282",
"185173035725853388156040619549187635213",
"260866314401500272208534697778067482797",
"203329086530426778346968357943866957871",
"122428274997355347990296185227387764481",
"290434285888836716439520089230934952534",
"326220037032489635916602324084551840382",
"95899842746094782830162675285879853516",
"320877814490028842209203504526483697429",
"180996430025501196841781386014556373815",
"75617147953475543061365146900300358228",
"205163752289590128221893117893078999054",
"277704732293632829368791121975107463064",
"315725405121651448377203270666397280530",
"87161149820643948828822645480707861434",
"153504764215547719790195105095233584759",
"310701520044142227911709878246318247183",
"273005915635055084897029909523212050361",
"191756968641900778983885619328756734732",
"231913418475417496405080543507722967923",
"239788368423870632726202887954751823267",
"167489649927371604090124716147177235903",
"235769897525706279937219379146198959713",
"14093064773035136046900398712105290473",
"305827516323278040797297688836537264730",
"218633851329334101144925947441626773776",
"137451235563450928376793618028288871180",
"112314866947726539845208220763508195554",
"288780173515398839063257418388113715926",
"11227971027702932148703560022391119687",
"287250604247510279790309215411963952896",
"173695966434545077787549318505661132040",
"60403342162355175004679778365685302434",
"96321279450449511315013087041068590460",
"47539186479106999367788665360693922076",
"291080703300930521724306813207119797193",
"116799636889719334953211713780295442124",
"261516561042428774317157455892227651054",
"245902050430435944888563561646552948512",
"30432538466354987516190240465221129680",
"195639207982640997736721144652084484307",
"96935734094970963166642452690003026618",
"188786515580918497257357957129189858864",
"247160993059460557640729451603601895205",
"128796568311854991371436659873570585847",
"121450372433711144900343225728509249497",
"143110249801395683417873959967301882556",
"9442636808240473422170350041545139512",
"212577362392528115914147394735468192146",
"46118249536172861307039464675573263024",
"73558330998069049328696820965465224132",
"106416264314375084054030583149407171194",
"121492739381763455632462399529815291352",
"122486983818072623548205402469381540798",
"293399907366817195781056308602557947065",
"56636550661558499893311970357340194953",
"330984048068593860754886270018768176045"
],
"threshold": 0.9
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@76ea8e13aaefdfda6e5601323d6ea5340359dcfa",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c"
},
"id": "CVE-2024-41038-b2c84ffa"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1711.0,
"function_hash": "30494002500202634419193403004792062582"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6619aa48a011364e9f29083cc76368e6acfe5b11",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_coeff"
},
"id": "CVE-2024-41038-d1cae589"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 341.0,
"function_hash": "34907605540214209512714271372415009848"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6619aa48a011364e9f29083cc76368e6acfe5b11",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_coeff_parse_string"
},
"id": "CVE-2024-41038-e1993995"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1433.0,
"function_hash": "122428651374265067191718714646454142791"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@2163aff6bebbb752edf73f79700f5e2095f3559e",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_parse_coeff"
},
"id": "CVE-2024-41038-e4dd254b"
},
{
"signature_type": "Function",
"deprecated": false,
"signature_version": "v1",
"digest": {
"length": 1433.0,
"function_hash": "122428651374265067191718714646454142791"
},
"source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6619aa48a011364e9f29083cc76368e6acfe5b11",
"target": {
"file": "drivers/firmware/cirrus/cs_dsp.c",
"function": "cs_dsp_parse_coeff"
},
"id": "CVE-2024-41038-f6c3b8fa"
}
]