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.
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | May 15, 2025 | Apr 4, 2024 |
| Suse | — | Upgrade gfs2-kmp-azureUpgrade kernel-symsUpgrade kernel-64kb-livepatch-develUpgrade dtb-exynosUpgrade kernel-devel-azureUpgrade dtb-amdUpgrade dtb-amazonUpgrade dtb-caviumUpgrade dtb-marvellUpgrade gfs2-kmp-64kbUpgrade kernel-debugUpgrade dtb-alteraUpgrade dtb-appleUpgrade dtb-allwinnerUpgrade kernel-azure-livepatch-develUpgrade kernel-64kbUpgrade ocfs2-kmp-defaultUpgrade cluster-md-kmp-azureUpgrade kernel-default-vdsoUpgrade kernel-docs-htmlUpgrade gfs2-kmp-defaultUpgrade kernel-sourceUpgrade kernel-rt_debug-develUpgrade gfs2-kmp-rtUpgrade kernel-debug-develUpgrade kernel-syms-azureUpgrade ocfs2-kmp-64kbUpgrade dtb-lgUpgrade kernel-rt_debugUpgrade dtb-freescaleUpgrade kernel-kvmsmall-livepatch-develUpgrade dlm-kmp-64kbUpgrade kernel-rt-optionalUpgrade kernel-rt-vdsoUpgrade kselftests-kmp-64kbUpgrade kselftests-kmp-azureUpgrade kernel-64kb-optionalUpgrade kernel-azureUpgrade kernel-source-rtUpgrade reiserfs-kmp-64kbUpgrade kernel-debug-vdsoUpgrade kernel-default-develUpgrade kernel-default-livepatchUpgrade kernel-source-azureUpgrade kernel-develUpgrade kernel-kvmsmallUpgrade kernel-source-vanillaUpgrade kernel-kvmsmall-vdsoUpgrade kernel-azure-develUpgrade dtb-qcomUpgrade ocfs2-kmp-rtUpgrade kernel-azure-extraUpgrade ocfs2-kmp-azureUpgrade dtb-broadcomUpgrade dtb-hisiliconUpgrade cluster-md-kmp-rtUpgrade kernel-zfcpdumpUpgrade kernel-azure-optionalUpgrade kernel-kvmsmall-develUpgrade kernel-rtUpgrade dlm-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade reiserfs-kmp-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-devel-rtUpgrade dtb-xilinxUpgrade kernel-defaultUpgrade kernel-64kb-develUpgrade dtb-socionextUpgrade dtb-renesasUpgrade dtb-nvidiaUpgrade kselftests-kmp-defaultUpgrade kernel-rt-develUpgrade kernel-syms-rtUpgrade dtb-mediatekUpgrade kernel-default-livepatch-develUpgrade kernel-64kb-extraUpgrade dtb-rockchipUpgrade kernel-default-extraUpgrade kernel-obs-qaUpgrade kernel-default-base-rebuildUpgrade kernel-rt-extraUpgrade kernel-docsUpgrade kernel-azure-vdsoUpgrade dtb-armUpgrade kernel-rt-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade reiserfs-kmp-azureUpgrade reiserfs-kmp-defaultUpgrade kernel-obs-buildUpgrade kernel-default-optionalUpgrade kernel-default-baseUpgrade dtb-sprdUpgrade kselftests-kmp-rtUpgrade dlm-kmp-defaultUpgrade dlm-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-apmUpgrade dtb-amlogicUpgrade cluster-md-kmp-64kbUpgrade kernel-macrosUpgrade kernel-rt-livepatch | 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 |
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