Skip to content
Fencer Vulns
high 7.0

CVE-2024-36899 json

gpiolib: cdev: Fix use after free in lineinfo_changed_notify

published 2024-05-30 2 y ago modified 2026-10-15 25 d ago also EUVD-2024-36388

cvss
7.0
version 3.1, NVD
cisa kev
Not listed
not in CISA's catalog
epss
0.2%
EPSS 0.2% chance of exploitation in 30 days, percentile 7%
public exploits
0
none known

Summary

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.

Patch / fix

  • Linux Linux 5.10.234, 5.15.177, 6.1.127, 6.6.31, 6.8.10, 6.9
  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem V1.1.1
  • linux Debian 12 6.1.128-1
  • linux Debian 14, Debian 13 6.8.11-1

debian advisories DEBIAN-CVE-2024-36899

  • linux Ubuntu 22.04 LTS 5.15.0-135.146
  • linux Ubuntu 24.04 LTS 6.8.0-40.40
  • linux-aws Ubuntu 22.04 LTS 5.15.0-1080.87
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1013.14
  • linux-gcp Ubuntu 22.04 LTS 5.15.0-1079.88
  • linux-gcp Ubuntu 24.04 LTS 6.8.0-1012.13
  • linux-gke Ubuntu 22.04 LTS 5.15.0-1077.83
  • linux-gke Ubuntu 24.04 LTS 6.8.0-1008.11

ubuntu advisories UBUNTU-CVE-2024-36899

Ubuntu security data © Canonical Ltd., from https://github.com/canonical/ubuntu-security-notices via OSV; changed: normalised to fixed package versions per release. CC BY-SA 4.0

  • kernel RHEL 9 5.14.0-427.37.1.el9_4
  • rv RHEL 9 5.14.0-427.37.1.el9_4
  • perf RHEL 9 5.14.0-427.37.1.el9_4
  • rtla RHEL 9 5.14.0-427.37.1.el9_4
  • bpftool RHEL 9 7.3.0-427.37.1.el9_4
  • libperf RHEL 9 5.14.0-427.37.1.el9_4
  • kernel-rt RHEL 9 5.14.0-427.37.1.el9_4
  • kernel-64k RHEL 9 5.14.0-427.37.1.el9_4

red hat advisories RHSA-2024:7004RHSA-2024:7005RHSA-2024:6997

  • kernel-rt Linux Micro 6.0 6.4.0-9.1
  • kernel-source-rt Linux Micro 6.0 6.4.0-9.1
  • kernel-source Linux Micro 6.0 6.4.0-18.1
  • kernel-default Linux Micro 6.0 6.4.0-18.1
  • kernel-kvmsmall Linux Micro 6.0 6.4.0-18.1
  • kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
  • kernel-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1
  • kernel-syms-rt Real Time Module 15 SP6, openSUSE Leap 15.6 6.4.0-150600.10.5.1

suse advisories SUSE-SU-2025:20028-1SUSE-SU-2025:20008-1SUSE-SU-2025:0266-1SUSE-SU-2025:0264-1SUSE-SU-2025:0261-1SUSE-SU-2025:0260-1

  • kernel AlmaLinux 9 5.14.0-427.37.1.el9_4
  • rv AlmaLinux 9 5.14.0-427.37.1.el9_4
  • perf AlmaLinux 9 5.14.0-427.37.1.el9_4
  • rtla AlmaLinux 9 5.14.0-427.37.1.el9_4
  • bpftool AlmaLinux 9 7.3.0-427.37.1.el9_4
  • libperf AlmaLinux 9 5.14.0-427.37.1.el9_4
  • kernel-rt AlmaLinux 9 5.14.0-427.37.1.el9_4
  • kernel-64k AlmaLinux 9 5.14.0-427.37.1.el9_4

almalinux advisories ALSA-2024:6997

  • kernel CBL-Mariner 2.0 5.15.179.1-1

azure linux advisories AZL-55548

Azure Linux vulnerability data, Copyright (c) Microsoft Corporation, from https://github.com/microsoft/AzureLinuxVulnerabilityData via OSV, under the MIT licence; changed: normalised to fixed package versions per release. MIT

Vendor advisories

What the vendors themselves say about their products: affected, fixed or not affected, and what to do.

red hat product security vex CVE-2024-36899 updated cvss 6.7

kernel: gpiolib: cdev: Fix use after free in lineinfo_changed_notify

  • Red Hat Enterprise Linux 6 perf, kernel, python-perf, kernel-kdump, kernel-firmware, kernel-bootwrapper, +1 more Red Hat Enterprise Linux 7 perf, kernel, bpftool, kernel-rt, python-perf, kernel-kdump, +8 more
    affected: no fix planned “Out of support scope”
  • Red Hat Enterprise Linux 9 kernel-rt, kernel-rt-kvm, kernel-rt-core, kernel-rt-modules, kernel-rt-debug-kvm, kernel-rt-debug-core, +12 more
    affected: no fix available
  • Red Hat CodeReady Linux Builder EUS (v.9.2) kernel-debuginfo-common-s390x 5.14.0-284.85.1.el9_2, kernel-debuginfo-common-x86_64 5.14.0-284.85.1.el9_2, kernel-debuginfo-common-aarch64 5.14.0-284.85.1.el9_2, kernel-debuginfo-common-ppc64le 5.14.0-284.85.1.el9_2
    fixed: vendor fix RHSA-2024:7004
  • Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-427.37.1.el9_4, perf 5.14.0-427.37.1.el9_4, rtla 5.14.0-427.37.1.el9_4, kernel-devel-matched 5.14.0-427.37.1.el9_4, kernel-64k-devel-matched 5.14.0-427.37.1.el9_4, kernel-debug-devel-matched 5.14.0-427.37.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:6997
  • Red Hat Enterprise Linux AppStream EUS (v.9.2) perf 5.14.0-284.85.1.el9_2, rtla 5.14.0-284.85.1.el9_2, kernel-devel-matched 5.14.0-284.85.1.el9_2, kernel-64k-devel-matched 5.14.0-284.85.1.el9_2, kernel-debug-devel-matched 5.14.0-284.85.1.el9_2, kernel-debuginfo-common-s390x 5.14.0-284.85.1.el9_2, +5 more
    fixed: vendor fix RHSA-2024:7004
  • Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.3.0-427.37.1.el9_4, kernel 5.14.0-427.37.1.el9_4, kernel-64k 5.14.0-427.37.1.el9_4, kernel-core 5.14.0-427.37.1.el9_4, kernel-tools 5.14.0-427.37.1.el9_4, python3-perf 5.14.0-427.37.1.el9_4, +28 more
    fixed: vendor fix RHSA-2024:6997
  • Red Hat Enterprise Linux BaseOS EUS (v.9.2) bpftool 7.0.0-284.85.1.el9_2, kernel 5.14.0-284.85.1.el9_2, kernel-64k 5.14.0-284.85.1.el9_2, kernel-core 5.14.0-284.85.1.el9_2, kernel-tools 5.14.0-284.85.1.el9_2, python3-perf 5.14.0-284.85.1.el9_2, +28 more
    fixed: vendor fix RHSA-2024:7004
  • Red Hat Enterprise Linux CRB (v. 9) libperf 5.14.0-427.37.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.37.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.37.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.37.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.37.1.el9_4 Red Hat Enterprise Linux NFV (v. 9) kernel-rt 5.14.0-427.37.1.el9_4, kernel-rt-kvm 5.14.0-427.37.1.el9_4, kernel-rt-core 5.14.0-427.37.1.el9_4, kernel-rt-modules 5.14.0-427.37.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.37.1.el9_4, kernel-rt-debug-core 5.14.0-427.37.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:6997
show 3 more
  • Red Hat Enterprise Linux Real Time EUS (v.9.2) kernel-rt 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-core 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-modules 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-debug-core 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-modules-core 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-debug-modules 5.14.0-284.85.1.rt14.370.el9_2, +4 more Red Hat Enterprise Linux Real Time for NFV EUS (v.9.2) kernel-rt 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-kvm 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-core 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-modules 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-debug-kvm 5.14.0-284.85.1.rt14.370.el9_2, kernel-rt-debug-core 5.14.0-284.85.1.rt14.370.el9_2, +6 more
    fixed: vendor fix RHSA-2024:7005
  • Red Hat Enterprise Linux RT (v. 9) kernel-rt 5.14.0-427.37.1.el9_4, kernel-rt-core 5.14.0-427.37.1.el9_4, kernel-rt-modules 5.14.0-427.37.1.el9_4, kernel-rt-debug-core 5.14.0-427.37.1.el9_4, kernel-rt-modules-core 5.14.0-427.37.1.el9_4, kernel-rt-debug-modules 5.14.0-427.37.1.el9_4, +4 more
    fixed: vendor fix RHSA-2024:6997
  • Red Hat Enterprise Linux 8 perf, kernel, bpftool, kernel-rt, kernel-core, kernel-tools, +29 more
    not affected: vulnerable code not present

Red Hat CSAF VEX © Red Hat, Inc., from https://security.access.redhat.com/data/csaf/v2/vex/; changed: reduced to product statuses and remediations. CC BY 4.0 · csaf

cisa ICSA-24-102-01 updated cvss 7.0

Siemens SIMATIC S7-1500 TM MFP

  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem
    affected: mitigation, no fix available

Facts from CISA's republication of the vendor's own advisory (CSAF); the linked advisory is the authoritative source. CISA notification · csaf

CISA SSVC

Exploitation
none
Automatable
no
Technical impact
partial
Assessed
2 y ago

Exploit prediction

0.18% chance of exploitation in the next 30 days, higher than 7% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

assigned by version score vector
NVD 3.1 7.0 CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Affected products

  • Linux Linux
  • Siemens SIMATIC S7-1500 TM MFP - GNU/Linux subsystem

Classification

Weakness
  • CWE-362 Concurrent Execution using Shared Resource with Improper Synchronization
  • CWE-416 Use After Free
Technology feeds

References

Sources

Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.