In 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 Details
- CVSS 3.1 Base Score: 7.8
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 15, 2025 | Apr 4, 2024 |
| Suse | — | Upgrade kernel-rt_debug-develUpgrade kernel-debugUpgrade gfs2-kmp-rtUpgrade gfs2-kmp-defaultUpgrade kernel-azureUpgrade kernel-source-rtUpgrade kernel-sourceUpgrade dtb-lgUpgrade kernel-default-livepatchUpgrade kernel-source-azureUpgrade kernel-debug-vdsoUpgrade kernel-default-develUpgrade kernel-64kb-optionalUpgrade kernel-syms-azureUpgrade kernel-64kb-livepatch-develUpgrade kernel-source-vanillaUpgrade dtb-amazonUpgrade dtb-amdUpgrade kernel-devel-azureUpgrade reiserfs-kmp-azureUpgrade dtb-amlogicUpgrade kernel-rt_debug-vdsoUpgrade dtb-xilinxUpgrade dtb-apmUpgrade kernel-rt-extraUpgrade kernel-default-base-rebuildUpgrade kernel-obs-qaUpgrade kernel-default-extraUpgrade kernel-azure-vdsoUpgrade dtb-mediatekUpgrade cluster-md-kmp-64kbUpgrade kernel-obs-buildUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-rt-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kernel-default-baseUpgrade kernel-default-optionalUpgrade reiserfs-kmp-defaultUpgrade dtb-nvidiaUpgrade cluster-md-kmp-defaultUpgrade kselftests-kmp-defaultUpgrade kernel-defaultUpgrade kernel-64kb-develUpgrade dtb-socionextUpgrade kernel-rt-develUpgrade dtb-sprdUpgrade dtb-renesasUpgrade kernel-devel-rtUpgrade dlm-kmp-rtUpgrade dlm-kmp-defaultUpgrade kselftests-kmp-rtUpgrade kernel-syms-rtUpgrade dtb-rockchipUpgrade kernel-default-livepatch-develUpgrade kernel-docsUpgrade kernel-64kb-extraUpgrade reiserfs-kmp-rtUpgrade kernel-rt-livepatchUpgrade kernel-macrosUpgrade dtb-armUpgrade dlm-kmp-azureUpgrade reiserfs-kmp-64kbUpgrade dtb-qcomUpgrade ocfs2-kmp-rtUpgrade kernel-64kbUpgrade ocfs2-kmp-defaultUpgrade cluster-md-kmp-azureUpgrade dtb-marvellUpgrade dtb-freescaleUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-rt-optionalUpgrade gfs2-kmp-64kbUpgrade kernel-docs-htmlUpgrade kselftests-kmp-64kbUpgrade kernel-default-vdsoUpgrade kernel-rt-vdsoUpgrade kernel-azure-livepatch-develUpgrade dlm-kmp-64kbUpgrade kernel-symsUpgrade kernel-kvmsmall-develUpgrade kernel-azure-optionalUpgrade kselftests-kmp-azureUpgrade dtb-allwinnerUpgrade kernel-debug-develUpgrade kernel-rt_debugUpgrade ocfs2-kmp-64kbUpgrade dtb-alteraUpgrade kernel-rtUpgrade ocfs2-kmp-azureUpgrade kernel-azure-develUpgrade dtb-hisiliconUpgrade dtb-broadcomUpgrade dtb-appleUpgrade dtb-caviumUpgrade kernel-azure-extraUpgrade kernel-develUpgrade dtb-exynosUpgrade kernel-kvmsmallUpgrade kernel-zfcpdumpUpgrade cluster-md-kmp-rtUpgrade gfs2-kmp-azureUpgrade kernel-kvmsmall-vdso | May 6, 2024 | Apr 4, 2024 |
| Ubuntu | — | Upgrade linux-raspi-realtime | Feb 11, 2025 | Apr 4, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Oct 14, 2025 | Apr 4, 2024 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub