In the Linux kernel, the following vulnerability has been resolved:
gpiolib: cdev: Fix use after free in lineinfo_changed_notify
The use-after-free issue occurs as follows: when the GPIO chip device file is being closed by invoking gpio_chrdev_release(), watched_lines is freed by bitmap_free(), but the unregistration of lineinfo_changed_nb notifier chain failed due to waiting write rwsem. Additionally, one of the GPIO chip's lines is also in the release process and holds the notifier chain's read rwsem. Consequently, a race condition leads to the use-after-free of watched_lines.
Here is the typical stack when issue happened:
[free] gpio_chrdev_release() --> bitmap_free(cdev->watched_lines) <-- freed --> blocking_notifier_chain_unregister() --> down_write(&nh->rwsem) <-- waiting rwsem --> __down_write_common() --> rwsem_down_write_slowpath() --> schedule_preempt_disabled() --> schedule()
[use] st54spi_gpio_dev_release() --> gpio_free() --> gpiod_free() --> gpiod_free_commit() --> gpiod_line_state_notify() --> blocking_notifier_call_chain() --> down_read(&nh->rwsem); <-- held rwsem --> notifier_call_chain() --> lineinfo_changed_notify() --> test_bit(xxxx, cdev->watched_lines) <-- use after free
The side effect of the use-after-free issue is that a GPIO line event is being generated for userspace where it shouldn't. However, since the chrdev is being closed, userspace won't have the chance to read that event anyway.
To fix the issue, call the bitmap_free() function after the unregistration of lineinfo_changed_nb notifier chain.
CVSS Details
- CVSS 3.1 Base Score: 7
- CVSS 3.1 Vector: (CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H)
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Alma_linux | — | Upgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-extraUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-rt-debug-modules-coreUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-docUpgrade kernel-64k-debug-modules-extraUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-rtUpgrade libperfUpgrade kernel-rt-modulesUpgrade kernel-rt-debug-modulesUpgrade kernel-uki-virtUpgrade kernel-64k-debug-modules-coreUpgrade kernel-tools-libs-develUpgrade kernel-64k-coreUpgrade kernel-toolsUpgrade kernel-64k-devel-matchedUpgrade kernel-rt-debug-modules-extraUpgrade kernel-zfcpdump-modulesUpgrade kernel-64k-debugUpgrade rvUpgrade kernel-debug-modulesUpgrade kernel-debug-modules-coreUpgrade kernel-tools-libsUpgrade kernel-rt-modules-coreUpgrade kernel-zfcpdump-coreUpgrade kernel-debug-devel-matchedUpgrade kernel-modules-coreUpgrade kernel-headersUpgrade kernel-64k-debug-develUpgrade kernel-rt-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-rt-coreUpgrade kernel-cross-headersUpgrade kernel-rt-debug-develUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-coreUpgrade kernel-modules-extraUpgrade kernel-64k-debug-modulesUpgrade perfUpgrade kernel-rt-develUpgrade kernel-develUpgrade kernel-debugUpgrade kernel-64k-debug-coreUpgrade rtlaUpgrade kernel-debug-develUpgrade bpftoolUpgrade kernel-64k-develUpgrade python3-perfUpgrade kernel-64k-modules-extraUpgrade kernel-64k-modules-coreUpgrade kernel-debug-coreUpgrade kernel-64kUpgrade kernel-64k-modulesUpgrade kernelUpgrade kernel-modulesUpgrade kernel-rt-debugUpgrade kernel-zfcpdump-devel | Nov 4, 2024 | May 30, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-livepatch-5.10.227-219.884Upgrade python-perf-debuginfoUpgrade kernel-toolsUpgrade kernel-headersUpgrade python-perfUpgrade kernel-livepatch-5.10.228-219.884Upgrade kernel-debuginfo-common-x86_64Upgrade bpftoolUpgrade bpftool-debuginfoUpgrade kernel-tools-debuginfoUpgrade kernel-livepatch-5.15.178-120.178Upgrade kernelUpgrade kernel-livepatch-5.10.230-223.885Upgrade kernel-develUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-5.10.234-225.895Upgrade perf-debuginfoUpgrade kernel-tools-develUpgrade kernel-livepatch-5.10.233-223.887Upgrade perfUpgrade kernel-debuginfo | Feb 4, 2025 | May 30, 2024 |
| Amazon_linux_2023 | — | Upgrade kernel-debuginfoUpgrade kernel-libbpfUpgrade kernelUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-livepatch-6.1.112-124.190Upgrade kernel-toolsUpgrade bpftoolUpgrade perfUpgrade kernel-tools-develUpgrade kernel-modules-extraUpgrade kernel-livepatch-6.1.127-135.201Upgrade kernel-tools-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-livepatch-6.1.115-126.197Upgrade bpftool-debuginfoUpgrade kernel-libbpf-staticUpgrade python3-perfUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-modules-extra-commonUpgrade kernel-livepatch-6.1.119-129.201Upgrade kernel-livepatch-6.1.124-134.200Upgrade kernel-headersUpgrade perf-debuginfo | Feb 17, 2025 | May 30, 2024 |
| Debian | — | Upgrade linux-6.1Upgrade linux | Feb 10, 2025 | May 30, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernel-abi-stablelistsUpgrade kernelUpgrade bpftoolUpgrade python3-perfUpgrade kernel-tools-libsUpgrade kernel-tools | Oct 8, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade kernel-abi-stablelistsUpgrade kernel-toolsUpgrade kernelUpgrade kernel-tools-libsUpgrade python3-perfUpgrade bpftool | Oct 9, 2024 | May 30, 2024 |
| Oracle_linux | — | Upgrade kernel-uekUpgrade kernel | Oct 16, 2024 | May 30, 2024 |
| Redhat_linux | — | Upgrade kernelUpgrade kernel-rtNo solution exists | Sep 25, 2024 | May 30, 2024 |
| Suse | — | Upgrade dlm-kmp-64kbUpgrade kernel-source-azureUpgrade dtb-sprdUpgrade kernel-syms-azureUpgrade kernel-rt-vdsoUpgrade cluster-md-kmp-azureUpgrade kernel-rt_debug-develUpgrade kernel-default-develUpgrade kernel-source-vanillaUpgrade kernel-obs-buildUpgrade dtb-exynosUpgrade gfs2-kmp-azureUpgrade dtb-lgUpgrade kernel-sourceUpgrade dtb-freescaleUpgrade kernel-source-rtUpgrade kernel-kvmsmall-vdsoUpgrade reiserfs-kmp-defaultUpgrade kernel-rt-optionalUpgrade dtb-broadcomUpgrade dtb-renesasUpgrade dtb-appleUpgrade kernel-64kbUpgrade reiserfs-kmp-64kbUpgrade ocfs2-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-debug-vdsoUpgrade kernel-default-vdsoUpgrade kernel-64kb-extraUpgrade kernel-rt-extraUpgrade kselftests-kmp-64kbUpgrade kernel-rtUpgrade gfs2-kmp-defaultUpgrade kernel-default-livepatchUpgrade dtb-qcomUpgrade kernel-azure-extraUpgrade dtb-allwinnerUpgrade dtb-marvellUpgrade cluster-md-kmp-rtUpgrade dtb-caviumUpgrade dtb-xilinxUpgrade dtb-amazonUpgrade kernel-azureUpgrade cluster-md-kmp-64kbUpgrade dlm-kmp-rtUpgrade ocfs2-kmp-defaultUpgrade kernel-develUpgrade kernel-docs-htmlUpgrade kernel-default-optionalUpgrade ocfs2-kmp-azureUpgrade kselftests-kmp-azureUpgrade kernel-kvmsmall-livepatch-develUpgrade dtb-alteraUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-azure-optionalUpgrade kernel-azure-vdsoUpgrade reiserfs-kmp-azureUpgrade dlm-kmp-defaultUpgrade kernel-rt-develUpgrade cluster-md-kmp-defaultUpgrade kernel-rt_debugUpgrade kernel-default-base-rebuildUpgrade kernel-azure-develUpgrade dtb-mediatekUpgrade dtb-apmUpgrade kselftests-kmp-defaultUpgrade dtb-hisiliconUpgrade gfs2-kmp-rtUpgrade kselftests-kmp-rtUpgrade kernel-kvmsmallUpgrade kernel-devel-rtUpgrade kernel-debug-develUpgrade kernel-symsUpgrade dtb-rockchipUpgrade kernel-docsUpgrade kernel-rt-livepatch-develUpgrade dtb-amlogicUpgrade dlm-kmp-azureUpgrade kernel-defaultUpgrade kernel-debugUpgrade kernel-zfcpdumpUpgrade kernel-syms-rtUpgrade gfs2-kmp-64kbUpgrade kernel-debug-livepatch-develUpgrade kernel-kvmsmall-develUpgrade reiserfs-kmp-rtUpgrade kernel-rt_debug-vdsoUpgrade dtb-armUpgrade ocfs2-kmp-rtUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-optionalUpgrade kernel-devel-azureUpgrade kernel-obs-qaUpgrade kernel-default-extraUpgrade kernel-default-baseUpgrade dtb-socionextUpgrade kernel-64kb-livepatch-develUpgrade kernel-64kb-develUpgrade dtb-nvidiaUpgrade kernel-macrosUpgrade kernel-default-livepatch-develUpgrade dtb-amd | Jul 10, 2024 | May 30, 2024 |
| Ubuntu | — | Upgrade linux-image-intelUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-oem-20.04Upgrade linux-image-6.8.0-1010-oemUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-gke-5.15Upgrade linux-image-nvidiaUpgrade linux-image-aws-lts-22.04Upgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-gkeUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-oem-20.04cUpgrade linux-image-genericUpgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-virtual-hwe-20.04Upgrade linux-image-gcpUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-intel-iotgUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-generic-64kUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-20.04dUpgrade linux-image-kvmUpgrade linux-image-oem-24.04Upgrade linux-image-oracle-lts-22.04Upgrade linux-image-ibmUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.15.0-1080-awsUpgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-gkeopUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-nvidia-64kUpgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-oem-24.04aUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-5.15.0-1084-azureUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-azureUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-oem-20.04bUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-virtualUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-nvidia-lowlatencyUpgrade linux-image-awsUpgrade linux-image-lowlatencyUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-azure-fipsUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-generic-lpaeUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-nvidia-tegra-igxUpgrade linux-image-fipsUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-gcp-fipsUpgrade linux-image-nvidia-6.8Upgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-6.8.0-1013-awsUpgrade linux-image-oracleUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-40-genericUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-azure-cvmUpgrade linux-image-raspiUpgrade linux-image-azure-fdeUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-raspi-nolpaeUpgrade linux-image-lowlatency-64kUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-realtimeUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-5.15.0-1074-nvidia | Aug 9, 2024 | May 30, 2024 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | Jul 2, 2025 | May 30, 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