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