In the Linux kernel, the following vulnerability has been resolved:
drm/i915/hwmon: Get rid of devm
When both hwmon and hwmon drvdata (on which hwmon depends) are device managed resources, the expectation, on device unbind, is that hwmon will be released before drvdata. However, in i915 there are two separate code paths, which both release either drvdata or hwmon and either can be released before the other. These code paths (for device unbind) are as follows (see also the bug referenced below):
Call Trace: release_nodes+0x11/0x70 devres_release_group+0xb2/0x110 component_unbind_all+0x8d/0xa0 component_del+0xa5/0x140 intel_pxp_tee_component_fini+0x29/0x40 [i915] intel_pxp_fini+0x33/0x80 [i915] i915_driver_remove+0x4c/0x120 [i915] i915_pci_remove+0x19/0x30 [i915] pci_device_remove+0x32/0xa0 device_release_driver_internal+0x19c/0x200 unbind_store+0x9c/0xb0
and
Call Trace: release_nodes+0x11/0x70 devres_release_all+0x8a/0xc0 device_unbind_cleanup+0x9/0x70 device_release_driver_internal+0x1c1/0x200 unbind_store+0x9c/0xb0
This means that in i915, if use devm, we cannot gurantee that hwmon will always be released before drvdata. Which means that we have a uaf if hwmon sysfs is accessed when drvdata has been released but hwmon hasn't.
The only way out of this seems to be do get rid of devm_ and release/free everything explicitly during device unbind.
v2: Change commit message and other minor code changes v3: Cleanup from i915_hwmon_register on error (Armin Wolf) v4: Eliminate potential static analyzer warning (Rodrigo) Eliminate fetch_and_zero (Jani) v5: Restore previous logic for ddat_gt->hwmon_dev error return (Andi)
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 linux | May 15, 2025 | Jul 5, 2024 |
| Redhat_linux | — | Upgrade kernelNo solution existsUpgrade kernel-rt | Dec 5, 2024 | Jul 5, 2024 |
| Suse | — | Upgrade dtb-amlogicUpgrade dtb-apmUpgrade kselftests-kmp-64kbUpgrade dtb-qcomUpgrade kernel-azure-extraUpgrade kernel-sourceUpgrade dtb-exynosUpgrade kernel-rtUpgrade kernel-64kb-develUpgrade ocfs2-kmp-rtUpgrade kernel-default-extraUpgrade kernel-devel-rtUpgrade kernel-64kb-optionalUpgrade kernel-azure-vdsoUpgrade kernel-debug-develUpgrade kernel-kvmsmallUpgrade kernel-azure-develUpgrade kselftests-kmp-defaultUpgrade kernel-obs-qaUpgrade cluster-md-kmp-azureUpgrade gfs2-kmp-64kbUpgrade kernel-64kbUpgrade dlm-kmp-azureUpgrade kernel-source-azureUpgrade kernel-rt_debug-vdsoUpgrade gfs2-kmp-rtUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-mediatekUpgrade kernel-azure-livepatch-develUpgrade dtb-xilinxUpgrade kernel-syms-azureUpgrade dtb-freescaleUpgrade kernel-macrosUpgrade dtb-armUpgrade kernel-devel-azureUpgrade kernel-64kb-livepatch-develUpgrade kernel-default-develUpgrade cluster-md-kmp-defaultUpgrade kernel-rt-livepatch-develUpgrade kernel-symsUpgrade dtb-lgUpgrade kernel-kvmsmall-develUpgrade dtb-hisiliconUpgrade kernel-debug-livepatch-develUpgrade dtb-appleUpgrade kernel-syms-rtUpgrade kernel-rt_debugUpgrade kernel-zfcpdumpUpgrade kernel-rt-develUpgrade dlm-kmp-64kbUpgrade kernel-debugUpgrade dtb-amazonUpgrade kernel-rt_debug-develUpgrade kernel-default-livepatch-develUpgrade cluster-md-kmp-rtUpgrade dtb-sprdUpgrade kernel-rt-vdsoUpgrade kernel-64kb-extraUpgrade dtb-allwinnerUpgrade ocfs2-kmp-azureUpgrade reiserfs-kmp-rtUpgrade dtb-marvellUpgrade dtb-socionextUpgrade kernel-docsUpgrade kernel-rt-extraUpgrade reiserfs-kmp-defaultUpgrade kernel-default-base-rebuildUpgrade kernel-default-baseUpgrade kernel-source-vanillaUpgrade kernel-defaultUpgrade kernel-rt-optionalUpgrade kernel-develUpgrade kselftests-kmp-azureUpgrade kernel-default-vdsoUpgrade dtb-nvidiaUpgrade kernel-debug-vdsoUpgrade dlm-kmp-rtUpgrade kernel-obs-buildUpgrade dtb-caviumUpgrade kernel-docs-htmlUpgrade kernel-azureUpgrade dtb-broadcomUpgrade kernel-azure-optionalUpgrade dtb-renesasUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade ocfs2-kmp-64kbUpgrade kernel-source-rtUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-default-livepatchUpgrade dtb-rockchipUpgrade dtb-alteraUpgrade kernel-kvmsmall-vdsoUpgrade ocfs2-kmp-defaultUpgrade dtb-amdUpgrade kernel-default-optionalUpgrade gfs2-kmp-defaultUpgrade gfs2-kmp-azureUpgrade cluster-md-kmp-64kbUpgrade reiserfs-kmp-64kbUpgrade kselftests-kmp-rt | Aug 8, 2024 | Jul 5, 2024 |
| Ubuntu | — | Upgrade linux-image-ibm-classicUpgrade linux-image-6.8.0-1013-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-44-genericUpgrade linux-image-6.8.0-45-genericUpgrade linux-image-6.8.0-1012-oemUpgrade linux-image-6.8.0-1015-awsUpgrade linux-image-ibmUpgrade linux-image-6.8.0-1010-gkeUpgrade linux-image-nvidia-6.8Upgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-45-generic-64kUpgrade linux-image-6.8.0-1014-azureUpgrade linux-image-genericUpgrade linux-image-6.8.0-1012-oracle-64kUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-1012-oracleUpgrade linux-image-generic-64kUpgrade linux-image-oem-22.04Upgrade linux-image-oem-22.04aUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-virtualUpgrade linux-image-oracleUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-nvidiaUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-6.8.0-1013-nvidiaUpgrade linux-image-6.8.0-44-lowlatencyUpgrade linux-image-6.8.0-44-lowlatency-64kUpgrade linux-image-gkeUpgrade linux-image-lowlatency-64kUpgrade linux-image-generic-lpaeUpgrade linux-image-oem-22.04cUpgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-virtual-hwe-22.04Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-awsUpgrade linux-image-6.8.0-1013-nvidia-64kUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1014-gcpUpgrade linux-image-oracle-64kUpgrade linux-image-6.8.0-1012-ibmUpgrade linux-image-6.8.0-1011-raspiUpgrade linux-image-6.8.0-1013-nvidia-lowlatencyUpgrade linux-image-generic-hwe-22.04Upgrade linux-image-6.8.0-1014-azure-fdeUpgrade linux-image-gcpUpgrade linux-image-oem-22.04dUpgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-44-generic-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-22.04bUpgrade linux-image-raspiUpgrade linux-image-azureUpgrade linux-image-kvmUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-azure-fde | Sep 12, 2024 | Jul 5, 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