{"id":"DEBIAN-CVE-2024-26807","details":"In the Linux kernel, the following vulnerability has been resolved:  Both cadence-quadspi -\u003eruntime_suspend() and -\u003eruntime_resume() implementations start with:  \tstruct cqspi_st *cqspi = dev_get_drvdata(dev); \tstruct 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 -\u003eprobe() function of the cadence-quadspi driver then sets the device drvdata to store the address of the \"struct cqspi_st\" structure. Therefore:  \tstruct cqspi_st *cqspi = dev_get_drvdata(dev);  is correct, but:  \tstruct 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 -\u003eprobe(), as -\u003eprobe() enables the device using PM runtime, leading the -\u003eruntime_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.","modified":"2026-09-15T09:03:05.424793952Z","published":"2024-04-04T09:15:09.380Z","upstream":["CVE-2024-26807"],"references":[{"type":"ADVISORY","url":"https://security-tracker.debian.org/tracker/CVE-2024-26807"}],"affected":[{"package":{"name":"linux","ecosystem":"Debian:12","purl":"pkg:deb/debian/linux?arch=source&distro=bookworm"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.1.140-1"}]}],"versions":["6.1.106-1","6.1.106-2","6.1.106-3","6.1.112-1","6.1.115-1","6.1.119-1","6.1.123-1","6.1.124-1","6.1.128-1","6.1.129-1","6.1.133-1","6.1.135-1","6.1.137-1","6.1.139-1","6.1.27-1","6.1.37-1","6.1.38-1","6.1.38-2","6.1.38-2~bpo11+1","6.1.38-3","6.1.38-4","6.1.38-4~bpo11+1","6.1.52-1","6.1.55-1","6.1.55-1~bpo11+1","6.1.64-1","6.1.66-1","6.1.67-1","6.1.69-1","6.1.69-1~bpo11+1","6.1.76-1","6.1.76-1~bpo11+1","6.1.82-1","6.1.85-1","6.1.90-1","6.1.90-1~bpo11+1","6.1.94-1","6.1.94-1~bpo11+1","6.1.98-1","6.1.99-1"],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-26807.json"}},{"package":{"name":"linux","ecosystem":"Debian:13","purl":"pkg:deb/debian/linux?arch=source&distro=trixie"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.9-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-26807.json"}},{"package":{"name":"linux","ecosystem":"Debian:14","purl":"pkg:deb/debian/linux?arch=source&distro=forky"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"},{"fixed":"6.7.9-1"}]}],"ecosystem_specific":{"urgency":"not yet assigned"},"database_specific":{"source":"https://storage.googleapis.com/osv-test-debian-osv/debian-cve-osv/DEBIAN-CVE-2024-26807.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"}]}