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