CVE-2024-26807
MediumIn the Linux kernel, the following vulnerability has been resolved: Both cadence-quadspi ->runtime_suspend() and ->runtime_resume() implementations start with: struct cqspi_st *cqspi = dev_get_drvdata(dev); struct spi_controller *host = dev_get_drvdata(dev); This obviously cannot be correct, unless "struct cqspi_st" is the first member of " struct spi_controller", or the other way around, but it is not the case. "struct spi_controller" is allocated by devm_spi_alloc_host(), which allocates an extra amount of memory for private data, used to store "struct cqspi_st". The ->probe() function of the cadence-quadspi driver then sets the device drvdata to store the address of the "struct cqspi_st" structure. Therefore: struct cqspi_st *cqspi = dev_get_drvdata(dev); is correct, but: struct spi_controller *host = dev_get_drvdata(dev); is not, as it makes "host" point not to a "struct spi_controller" but to the same "struct cqspi_st" structure as above. This obviously leads to bad things (memory corruption, kernel crashes) directly during ->probe(), as ->probe() enables the device using PM runtime, leading the ->runtime_resume() hook being called, which in turns calls spi_controller_resume() with the wrong pointer. This has at least been reported [0] to cause a kernel crash, but the exact behavior will depend on the memory contents. [0] https://lore.kernel.org/all/20240226121803.5a7r5wkpbbowcxgx@dhruva/ This issue potentially affects all platforms that are currently using the cadence-quadspi driver.
CVSS 3.1 score
5.5
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Weakness type
CWE-787CVE-2024-26807 is a Out-of-bounds Write vulnerability
What is Out-of-bounds Write?
The product writes data past the end or before the beginning of the intended buffer. Learn more on MITRE CWE
References
The following references provide additional information about CVE-2024-26807 including vendor advisories, patch commits, exploit details, and third-party analysis. Links are sourced from the NIST NVD database.
-
-
PatchKernel patch commithttps://git.kernel.org/stable/c/03f1573c9587029730ca68503f5062105b122f61
-
PatchKernel patch commithttps://git.kernel.org/stable/c/2c914aac9522f6e93822c18dff233d3e92399c81
-
PatchKernel patch commithttps://git.kernel.org/stable/c/32ce3bb57b6b402de2aec1012511e7ac4e7449dc
Frequently asked questions
-
What is CVE-2024-26807?
CVE-2024-26807 is a Medium severity Linux kernel vulnerability with a CVSS score of 5.5 out of 10 , classified as an Out-of-bounds Write flaw (CWE-787) . CVE-2024-26807 has not been confirmed as actively exploited and is not listed in the CISA KEV catalog.
-
What is the CVSS score for CVE-2024-26807?
CVE-2024-26807 has a CVSS score of 5.5 out of 10, rated Medium severity (CVSS 3.1). The vector string is
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H. -
Is there a patch available for CVE-2024-26807?
No patch is currently available for CVE-2024-26807. Monitor the NIST NVD and your Linux distribution's security advisories for updates.
-
Is CVE-2024-26807 actively exploited?
No — CVE-2024-26807 has not been confirmed as actively exploited. It is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog.
-
What is Out-of-bounds Write (CWE-787)?
The product writes data past the end or before the beginning of the intended buffer. View CWE-787 on MITRE CWE →