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-zfcpdump-develUpgrade rtlaUpgrade kernel-cross-headersUpgrade kernel-rt-debugUpgrade kernel-rt-develUpgrade bpftoolUpgrade kernel-modulesUpgrade kernel-debugUpgrade perfUpgrade kernel-64k-modulesUpgrade kernel-modules-coreUpgrade kernel-develUpgrade kernel-debug-develUpgrade kernel-modules-extraUpgrade kernel-64k-debug-coreUpgrade kernel-headersUpgrade kernel-64kUpgrade kernel-coreUpgrade kernel-64k-modules-coreUpgrade kernelUpgrade python3-perfUpgrade kernel-64k-debug-modulesUpgrade kernel-64k-modules-extraUpgrade kernel-debug-uki-virtUpgrade kernel-zfcpdump-modules-extraUpgrade kernel-rt-debug-develUpgrade kernel-64k-debug-develUpgrade kernel-debug-coreUpgrade kernel-rt-modules-extraUpgrade kernel-64k-develUpgrade kernel-rt-coreUpgrade kernel-rt-debug-modules-extraUpgrade kernel-rtUpgrade kernel-tools-libs-develUpgrade kernel-uki-virtUpgrade kernel-rt-debug-coreUpgrade kernel-debug-modules-extraUpgrade kernel-rt-debug-modules-coreUpgrade kernel-64k-debug-modules-extraUpgrade kernel-toolsUpgrade kernel-64k-coreUpgrade kernel-64k-debug-devel-matchedUpgrade kernel-tools-libsUpgrade kernel-rt-modulesUpgrade rvUpgrade kernel-64k-debugUpgrade kernel-debug-modulesUpgrade kernel-zfcpdump-modules-coreUpgrade kernel-docUpgrade libperfUpgrade kernel-zfcpdump-devel-matchedUpgrade kernel-debug-devel-matchedUpgrade kernel-rt-modules-coreUpgrade kernel-devel-matchedUpgrade kernel-zfcpdumpUpgrade kernel-64k-devel-matchedUpgrade kernel-64k-debug-modules-coreUpgrade kernel-debug-modules-coreUpgrade kernel-abi-stablelistsUpgrade kernel-zfcpdump-modulesUpgrade kernel-zfcpdump-coreUpgrade kernel-rt-debug-modules | Nov 4, 2024 | May 30, 2024 |
| Amazon Linux Ami 2 | — | Upgrade kernel-tools-develUpgrade kernel-debuginfoUpgrade kernel-livepatch-5.10.230-223.885Upgrade kernel-develUpgrade kernel-livepatch-5.10.234-225.895Upgrade kernel-livepatch-5.10.233-223.887Upgrade perf-debuginfoUpgrade kernel-debuginfo-common-aarch64Upgrade perfUpgrade kernel-toolsUpgrade python-perfUpgrade bpftool-debuginfoUpgrade kernel-livepatch-5.15.178-120.178Upgrade python-perf-debuginfoUpgrade kernelUpgrade kernel-headersUpgrade bpftoolUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-5.10.228-219.884Upgrade kernel-livepatch-5.10.227-219.884Upgrade kernel-tools-debuginfo | Feb 4, 2025 | May 30, 2024 |
| Amazon_linux_2023 | — | Upgrade kernelUpgrade kernel-debuginfo-common-aarch64Upgrade kernel-tools-develUpgrade kernel-livepatch-6.1.127-135.201Upgrade perfUpgrade kernel-toolsUpgrade python3-perfUpgrade python3-perf-debuginfoUpgrade kernel-develUpgrade bpftoolUpgrade kernel-libbpf-staticUpgrade kernel-tools-debuginfoUpgrade kernel-debuginfoUpgrade kernel-modules-extraUpgrade kernel-libbpfUpgrade kernel-livepatch-6.1.112-124.190Upgrade kernel-livepatch-6.1.115-126.197Upgrade bpftool-debuginfoUpgrade kernel-libbpf-develUpgrade kernel-debuginfo-common-x86_64Upgrade kernel-livepatch-6.1.124-134.200Upgrade kernel-modules-extra-commonUpgrade kernel-headersUpgrade perf-debuginfoUpgrade kernel-livepatch-6.1.119-129.201 | Feb 17, 2025 | May 30, 2024 |
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Feb 10, 2025 | May 30, 2024 |
| Huawei Euleros 2_0_sp11 | — | Upgrade kernelUpgrade kernel-abi-stablelistsUpgrade bpftoolUpgrade kernel-tools-libsUpgrade python3-perfUpgrade kernel-tools | Oct 8, 2024 | May 30, 2024 |
| Huawei Euleros 2_0_sp12 | — | Upgrade python3-perfUpgrade kernelUpgrade kernel-tools-libsUpgrade bpftoolUpgrade kernel-abi-stablelistsUpgrade kernel-tools | Oct 9, 2024 | May 30, 2024 |
| Oracle_linux | — | Upgrade kernelUpgrade kernel-uek | Oct 16, 2024 | May 30, 2024 |
| Redhat_linux | — | Upgrade kernel-rtNo solution existsUpgrade kernel | Sep 25, 2024 | May 30, 2024 |
| Suse | — | Upgrade kernel-azureUpgrade cluster-md-kmp-64kbUpgrade gfs2-kmp-azureUpgrade dtb-lgUpgrade dtb-exynosUpgrade dtb-xilinxUpgrade kernel-obs-buildUpgrade dtb-caviumUpgrade dlm-kmp-rtUpgrade reiserfs-kmp-64kbUpgrade reiserfs-kmp-defaultUpgrade ocfs2-kmp-64kbUpgrade kernel-default-optionalUpgrade kernel-rt-optionalUpgrade kernel-rt-vdsoUpgrade ocfs2-kmp-defaultUpgrade dtb-amazonUpgrade kernel-source-vanillaUpgrade kselftests-kmp-azureUpgrade dlm-kmp-64kbUpgrade dtb-allwinnerUpgrade gfs2-kmp-defaultUpgrade dtb-qcomUpgrade dtb-broadcomUpgrade dtb-alteraUpgrade dtb-marvellUpgrade kernel-default-livepatchUpgrade kernel-kvmsmall-livepatch-develUpgrade kernel-rt_debug-livepatch-develUpgrade kernel-azure-optionalUpgrade kernel-source-rtUpgrade kernel-default-develUpgrade dtb-freescaleUpgrade dtb-appleUpgrade dtb-renesasUpgrade kernel-docs-htmlUpgrade kernel-rtUpgrade cluster-md-kmp-azureUpgrade ocfs2-kmp-azureUpgrade cluster-md-kmp-rtUpgrade kernel-rt-extraUpgrade kernel-debug-vdsoUpgrade kernel-64kb-extraUpgrade kernel-source-azureUpgrade kernel-kvmsmall-vdsoUpgrade kernel-sourceUpgrade kernel-64kbUpgrade kernel-develUpgrade dtb-sprdUpgrade kernel-default-vdsoUpgrade kselftests-kmp-64kbUpgrade kernel-rt-livepatchUpgrade kernel-azure-extraUpgrade kernel-syms-azureUpgrade kernel-rt_debug-develUpgrade dtb-mediatekUpgrade gfs2-kmp-rtUpgrade kernel-azure-develUpgrade kernel-debug-develUpgrade kernel-64kb-livepatch-develUpgrade dtb-amlogicUpgrade kernel-obs-qaUpgrade kernel-rt_debug-vdsoUpgrade dtb-armUpgrade kernel-devel-azureUpgrade kernel-azure-livepatch-develUpgrade kernel-64kb-optionalUpgrade ocfs2-kmp-rtUpgrade reiserfs-kmp-rtUpgrade dtb-rockchipUpgrade kernel-default-base-rebuildUpgrade kernel-azure-vdsoUpgrade dtb-apmUpgrade kselftests-kmp-defaultUpgrade dtb-hisiliconUpgrade kernel-rt_debugUpgrade kernel-rt-develUpgrade kernel-macrosUpgrade kernel-default-livepatch-develUpgrade kernel-64kb-develUpgrade dtb-nvidiaUpgrade dtb-amdUpgrade dlm-kmp-defaultUpgrade reiserfs-kmp-azureUpgrade cluster-md-kmp-defaultUpgrade kernel-zfcpdumpUpgrade kernel-syms-rtUpgrade kernel-defaultUpgrade kernel-debugUpgrade gfs2-kmp-64kbUpgrade dlm-kmp-azureUpgrade kernel-default-extraUpgrade kernel-default-baseUpgrade dtb-socionextUpgrade kernel-rt-livepatch-develUpgrade kernel-debug-livepatch-develUpgrade kernel-symsUpgrade kernel-kvmsmallUpgrade kselftests-kmp-rtUpgrade kernel-docsUpgrade kernel-devel-rtUpgrade kernel-kvmsmall-devel | Jul 10, 2024 | May 30, 2024 |
| Ubuntu | — | Upgrade linux-image-5.15.0-135-lowlatencyUpgrade linux-image-6.8.0-40-generic-64kUpgrade linux-image-5.15.0-1074-ibmUpgrade linux-image-6.8.0-1011-nvidia-64kUpgrade linux-image-gcp-lts-22.04Upgrade linux-image-aws-fipsUpgrade linux-image-6.8.0-1012-gcpUpgrade linux-image-6.8.0-1012-azureUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-fipsUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-azure-fipsUpgrade linux-image-gcp-fipsUpgrade linux-image-lowlatency-64k-hwe-20.04Upgrade linux-image-gkeop-5.15Upgrade linux-image-6.8.0-1008-gkeUpgrade linux-image-6.8.0-40-lowlatency-64kUpgrade linux-image-5.15.0-135-fipsUpgrade linux-image-6.8.0-40-genericUpgrade linux-image-5.15.0-1074-nvidiaUpgrade linux-image-nvidia-tegra-igxUpgrade linux-image-nvidia-6.8Upgrade linux-image-raspi-nolpaeUpgrade linux-image-5.15.0-1062-gkeopUpgrade linux-image-realtimeUpgrade linux-image-6.8.0-1013-awsUpgrade linux-image-5.15.0-1074-nvidia-lowlatencyUpgrade linux-image-nvidia-tegra-rtUpgrade linux-image-6.8.0-1011-nvidiaUpgrade linux-image-5.15.0-135-generic-lpaeUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-5.15.0-1079-gcp-fipsUpgrade linux-image-lowlatency-64kUpgrade linux-image-5.15.0-136-generic-64kUpgrade linux-image-oracleUpgrade linux-image-6.8.0-1010-oracleUpgrade linux-image-generic-lpaeUpgrade linux-image-awsUpgrade linux-image-6.8.0-1012-azure-fdeUpgrade linux-image-raspiUpgrade linux-image-6.8.0-1011-nvidia-lowlatencyUpgrade linux-image-5.15.0-136-genericUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-6.8.0-1010-oracle-64kUpgrade linux-image-azure-fdeUpgrade linux-image-6.8.0-1009-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-6.8.0-40-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-azure-cvmUpgrade linux-image-5.15.0-1080-awsUpgrade linux-image-5.15.0-135-lowlatency-64kUpgrade linux-image-5.15.0-1079-gcpUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-5.15.0-1033-nvidia-tegra-rtUpgrade linux-image-5.15.0-1021-nvidia-tegra-igxUpgrade linux-image-aws-lts-22.04Upgrade linux-image-oracle-64kUpgrade linux-image-5.15.0-1080-aws-fipsUpgrade linux-image-gkeUpgrade linux-image-gkeopUpgrade linux-image-oem-20.04cUpgrade linux-image-oem-20.04dUpgrade linux-image-nvidia-tegraUpgrade linux-image-5.15.0-135-genericUpgrade linux-image-5.15.0-1081-gcpUpgrade linux-image-5.15.0-1075-intel-iotgUpgrade linux-image-intel-iotgUpgrade linux-image-oracle-lts-22.04Upgrade linux-image-generic-lpae-hwe-20.04Upgrade linux-image-gke-5.15Upgrade linux-image-5.15.0-1084-azureUpgrade linux-image-genericUpgrade linux-image-5.15.0-1083-azure-fipsUpgrade linux-image-lowlatency-hwe-20.04Upgrade linux-image-5.15.0-1073-intel-iot-realtimeUpgrade linux-image-oem-24.04Upgrade linux-image-nvidia-64kUpgrade linux-image-6.8.0-1010-ibmUpgrade linux-image-5.15.0-1077-intel-iotgUpgrade linux-image-nvidia-tegra-igx-rtUpgrade linux-image-azureUpgrade linux-image-generic-hwe-20.04Upgrade linux-image-kvmUpgrade linux-image-nvidiaUpgrade linux-image-5.15.0-1080-realtimeUpgrade linux-image-5.15.0-1044-xilinx-zynqmpUpgrade linux-image-5.15.0-1033-nvidia-tegraUpgrade linux-image-ibm-classicUpgrade linux-image-5.15.0-1077-oracleUpgrade linux-image-5.15.0-1076-kvmUpgrade linux-image-ibmUpgrade linux-image-azure-lts-22.04Upgrade linux-image-oem-20.04bUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-5.15.0-1086-azureUpgrade linux-image-generic-64kUpgrade linux-image-6.8.0-1011-nvidia-lowlatency-64kUpgrade linux-image-5.15.0-1072-ibmUpgrade linux-image-virtualUpgrade linux-image-5.15.0-1086-azure-fdeUpgrade linux-image-ibm-lts-24.04Upgrade linux-image-5.15.0-1077-gkeUpgrade linux-image-generic-64k-hwe-20.04Upgrade linux-image-5.15.0-136-generic-lpaeUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-virtual-hwe-20.04Upgrade linux-image-5.15.0-1021-nvidia-tegra-igx-rtUpgrade linux-image-gcpUpgrade linux-image-6.8.0-1010-oemUpgrade linux-image-intelUpgrade linux-image-5.15.0-1074-raspiUpgrade linux-image-5.15.0-135-generic-64kUpgrade linux-image-oem-20.04Upgrade linux-image-oem-24.04a | 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