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