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