firmware: cs_dsp: Fix overflow checking of wmfw header (Linux Linux)

CVE-2024-41039
HIGH 7.8

At a glance

Source
NVD
EPSS
EPSS 0.29 % · percentile 21 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Modified

Description

In the Linux kernel, the following vulnerability has been resolved: firmware: cs_dsp: Fix overflow checking of wmfw header Fix the checking that firmware file buffer is large enough for the wmfw header, to prevent overrunning the buffer. The original code tested that the firmware data buffer contained enough bytes for the sums of the size of the structs wmfw_header + wmfw_adsp1_sizes + wmfw_footer But wmfw_adsp1_sizes is only used on ADSP1 firmware. For ADSP2 and Halo Core the equivalent struct is wmfw_adsp2_sizes, which is 4 bytes longer. So the length check didn't guarantee that there are enough bytes in the firmware buffer for a header with wmfw_adsp2_sizes. This patch splits the length check into three separate parts. Each of the wmfw_header, wmfw_adsp?_sizes and wmfw_footer are checked separately before they are used.

Weaknesses (CWE)

  • CWE-120 — Buffer Copy without Checking Size of Input

References

Scores

VersionScoreVectorScored by
CVSS 3.1HIGH 7.8CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HNVD · nvd@nist.gov (Primary)

European references

CERT-FR advisories

Affected configurations (NVD CPE)

Affected products

ProductVersions
Linux · Linuxaffected f6bc909e7673c30abcbdb329e7d0aa2e83c103d7 < fd035f0810b33c2a8792effdb82bf35920221565 ; affected f6bc909e7673c30abcbdb329e7d0aa2e83c103d7 < 9c9877a96e033bf6c6470b3b4f06106d91ace11e ; affected f6bc909e7673c30abcbdb329e7d0aa2e83c103d7 < 49a79f344d0a17c6a5eef53716cc76fcdbfca9ba ; affected f6bc909e7673c30abcbdb329e7d0aa2e83c103d7 < 3019b86bce16fbb5bc1964f3544d0ce7d0137278
Linux · Linuxaffected 5.16 ; unaffected 0 < 5.16 ; unaffected 6.1.100 ≤ 6.1.* ; unaffected 6.6.41 ≤ 6.6.* ; unaffected 6.9.10 ≤ 6.9.* ; unaffected 6.10 ≤ *

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD