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