In the Linux kernel, the following vulnerability has been resolved:
firmware: cs_dsp: Return error if block header overflows file
Return an error from csdsppower_up() if a block header is longer than the amount of data left in the file.
The previous code in csdspload() and csdspload_coeff() would loop while there was enough data left in the file for a valid region. This protected against overrunning the end of the file data, but it didn't abort the file processing with an error.
{ "vanir_signatures": [ { "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c" }, "deprecated": false, "digest": { "line_hashes": [ "56131865760579234890081106934189915373", "328579854044491859002144169923209043578", "155302546063079488909659291863423418285", "14751150263525529862179725402062174406", "37451726077911016173724213330171271540", "211214410236452821129265980721933239208", "234386617311249979548592427439929494580", "63567092714555567637894597092057934003", "26539908961209678631135690324869259218", "233379447530771550007275215001764399466" ], "threshold": 0.9 }, "id": "CVE-2024-42238-3fa5f6d8", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eabd23383805725eff416c203688b7a390d4153" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c", "function": "cs_dsp_load" }, "deprecated": false, "digest": { "length": 4122.0, "function_hash": "197147511059182509405645511190933208832" }, "id": "CVE-2024-42238-cf158567", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eabd23383805725eff416c203688b7a390d4153" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c", "function": "cs_dsp_load" }, "deprecated": false, "digest": { "length": 4122.0, "function_hash": "197147511059182509405645511190933208832" }, "id": "CVE-2024-42238-d96c72c4", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@959fe01e85b7241e3ec305d657febbe82da16a02" }, { "signature_version": "v1", "signature_type": "Line", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c" }, "deprecated": false, "digest": { "line_hashes": [ "56131865760579234890081106934189915373", "328579854044491859002144169923209043578", "155302546063079488909659291863423418285", "14751150263525529862179725402062174406", "37451726077911016173724213330171271540", "211214410236452821129265980721933239208", "234386617311249979548592427439929494580", "63567092714555567637894597092057934003", "26539908961209678631135690324869259218", "233379447530771550007275215001764399466" ], "threshold": 0.9 }, "id": "CVE-2024-42238-f20b29f6", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@959fe01e85b7241e3ec305d657febbe82da16a02" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c", "function": "cs_dsp_load_coeff" }, "deprecated": false, "digest": { "length": 4525.0, "function_hash": "212888446674845990364502310123450560812" }, "id": "CVE-2024-42238-f38bc93b", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@959fe01e85b7241e3ec305d657febbe82da16a02" }, { "signature_version": "v1", "signature_type": "Function", "target": { "file": "drivers/firmware/cirrus/cs_dsp.c", "function": "cs_dsp_load_coeff" }, "deprecated": false, "digest": { "length": 4525.0, "function_hash": "212888446674845990364502310123450560812" }, "id": "CVE-2024-42238-f49addcc", "source": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git@6eabd23383805725eff416c203688b7a390d4153" } ] }