Skip to content
Fencer Vulns
medium 5.5

CVE-2024-31076 json

genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline

published 2024-06-21 2 y ago modified 2026-06-17 4 mo ago also EUVD-2024-34455

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

Summary

In the Linux kernel, the following vulnerability has been resolved:

genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline

The absence of IRQD_MOVE_PCNTXT prevents immediate effectiveness of interrupt affinity reconfiguration via procfs. Instead, the change is deferred until the next instance of the interrupt being triggered on the original CPU.

When the interrupt next triggers on the original CPU, the new affinity is enforced within __irq_move_irq(). A vector is allocated from the new CPU, but the old vector on the original CPU remains and is not immediately reclaimed. Instead, apicd->move_in_progress is flagged, and the reclaiming process is delayed until the next trigger of the interrupt on the new CPU.

Upon the subsequent triggering of the interrupt on the new CPU, irq_complete_move() adds a task to the old CPU's vector_cleanup list if it remains online. Subsequently, the timer on the old CPU iterates over its vector_cleanup list, reclaiming old vectors.

However, a rare scenario arises if the old CPU is outgoing before the interrupt triggers again on the new CPU.

In that case irq_force_complete_move() is not invoked on the outgoing CPU to reclaim the old apicd->prev_vector because the interrupt isn't currently affine to the outgoing CPU, and irq_needs_fixup() returns false. Even though __vector_schedule_cleanup() is later called on the new CPU, it doesn't reclaim apicd->prev_vector; instead, it simply resets both apicd->move_in_progress and apicd->prev_vector to 0.

As a result, the vector remains unreclaimed in vector_matrix, leading to a CPU vector leak.

To address this issue, move the invocation of irq_force_complete_move() before the irq_needs_fixup() call to reclaim apicd->prev_vector, if the interrupt is currently or used to be affine to the outgoing CPU.

Additionally, reclaim the vector in __vector_schedule_cleanup() as well, following a warning message, although theoretically it should never see apicd->move_in_progress with apicd->prev_cpu pointing to an offline CPU.

Patch / fix

  • Linux Linux 4.19.316, 5.4.278, 5.10.219, 5.15.161, 6.1.93, 6.6.33, 6.9.4, 6.10
  • linux Debian 12 6.1.94-1
  • linux Debian 14, Debian 13 6.9.7-1

debian advisories DEBIAN-CVE-2024-31076

  • linux Ubuntu 20.04 LTS 5.4.0-192.212
  • linux Ubuntu 22.04 LTS 5.15.0-121.131
  • linux Ubuntu 24.04 LTS 6.8.0-44.44
  • linux-aws Ubuntu 20.04 LTS 5.4.0-1130.140
  • linux-aws Ubuntu 22.04 LTS 5.15.0-1069.75
  • linux-aws Ubuntu 24.04 LTS 6.8.0-1015.16
  • linux-gcp Ubuntu 20.04 LTS 5.4.0-1134.143
  • linux-gcp Ubuntu 22.04 LTS 5.15.0-1068.76

ubuntu advisories UBUNTU-CVE-2024-31076

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-503.11.1.el9_5
  • rv RHEL 9 5.14.0-503.11.1.el9_5
  • perf RHEL 9 5.14.0-503.11.1.el9_5
  • rtla RHEL 9 5.14.0-503.11.1.el9_5
  • bpftool RHEL 9 7.4.0-503.11.1.el9_5
  • libperf RHEL 9 5.14.0-503.11.1.el9_5
  • kernel-rt RHEL 9 5.14.0-503.11.1.el9_5
  • kernel-64k RHEL 9 5.14.0-503.11.1.el9_5

red hat advisories RHSA-2024:10262RHSA-2024:9546RHSA-2024:9315RHSA-2024:9498RHSA-2024:9497RHSA-2024:5102

  • kernel-rt Linux Micro 6.0 6.4.0-10.1
  • kernel-source-rt Linux Micro 6.0 6.4.0-10.1
  • kernel-livepatch-MICRO-6-0-RT_Update_2 Linux Micro 6.0 1-1.1
  • kernel-source Linux Micro 6.0 6.4.0-19.1
  • kernel-default Linux Micro 6.0 6.4.0-19.1
  • kernel-kvmsmall Linux Micro 6.0 6.4.0-19.1
  • kernel-default-base Linux Micro 6.0 6.4.0-17.1.1.51
  • kernel-livepatch-MICRO-6-0_Update_2 Linux Micro 6.0 1-1.1

suse advisories SUSE-SU-2025:20047-1SUSE-SU-2025:20044-1SUSE-SU-2024:3483-1SUSE-SU-2024:3383-1SUSE-SU-2024:3209-1SUSE-SU-2024:3195-1

  • kernel AlmaLinux 8 4.18.0-553.16.1.el8_10
  • perf AlmaLinux 8 4.18.0-553.16.1.el8_10
  • bpftool AlmaLinux 8 4.18.0-553.16.1.el8_10
  • kernel-core AlmaLinux 8 4.18.0-553.16.1.el8_10
  • kernel-tools AlmaLinux 8 4.18.0-553.16.1.el8_10
  • python3-perf AlmaLinux 8 4.18.0-553.16.1.el8_10
  • kernel-modules AlmaLinux 8 4.18.0-553.16.1.el8_10
  • kernel-zfcpdump AlmaLinux 8 4.18.0-553.16.1.el8_10

almalinux advisories ALSA-2024:5101ALSA-2024:5102

  • kernel Rocky Linux 8 4.18.0-553.16.1.el8_10.cloud.0.1
  • kernel-rt Rocky Linux 8 4.18.0-553.16.1.rt7.357.el8_10
  • kernel Rocky Linux 8 4.18.0-553.16.1.el8_10

rocky linux advisories RXSA-2024:5101RLSA-2024:5102RLSA-2024:5101

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-31076 updated cvss 5.1

kernel: genirq/cpuhotplug, x86/vector: Prevent vector leak during CPU offline

  • 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 (v. 9) libperf 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-s390x 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-x86_64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-aarch64 5.14.0-503.11.1.el9_5, kernel-debuginfo-common-ppc64le 5.14.0-503.11.1.el9_5
    fixed: vendor fix RHSA-2024:9315
  • Red Hat CodeReady Linux Builder EUS (v.8.8) kernel-debuginfo-common-x86_64 4.18.0-477.81.1.el8_8, kernel-debuginfo-common-aarch64 4.18.0-477.81.1.el8_8, kernel-debuginfo-common-ppc64le 4.18.0-477.81.1.el8_8
    fixed: vendor fix RHSA-2024:10262
  • Red Hat CodeReady Linux Builder EUS (v.9.2) kernel-debuginfo-common-s390x 5.14.0-284.92.1.el9_2, kernel-debuginfo-common-x86_64 5.14.0-284.92.1.el9_2, kernel-debuginfo-common-aarch64 5.14.0-284.92.1.el9_2, kernel-debuginfo-common-ppc64le 5.14.0-284.92.1.el9_2
    fixed: vendor fix RHSA-2024:9497
  • Red Hat CodeReady Linux Builder EUS (v.9.4) libperf 5.14.0-427.44.1.el9_4, kernel-debuginfo-common-s390x 5.14.0-427.44.1.el9_4, kernel-debuginfo-common-x86_64 5.14.0-427.44.1.el9_4, kernel-debuginfo-common-aarch64 5.14.0-427.44.1.el9_4, kernel-debuginfo-common-ppc64le 5.14.0-427.44.1.el9_4
    fixed: vendor fix RHSA-2024:9546
  • Red Hat Enterprise Linux AppStream (v. 9) rv 5.14.0-503.11.1.el9_5, perf 5.14.0-503.11.1.el9_5, rtla 5.14.0-503.11.1.el9_5, kernel-devel-matched 5.14.0-503.11.1.el9_5, kernel-64k-devel-matched 5.14.0-503.11.1.el9_5, kernel-debug-devel-matched 5.14.0-503.11.1.el9_5, +6 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux AppStream EUS (v.9.2) perf 5.14.0-284.92.1.el9_2, rtla 5.14.0-284.92.1.el9_2, kernel-devel-matched 5.14.0-284.92.1.el9_2, kernel-64k-devel-matched 5.14.0-284.92.1.el9_2, kernel-debug-devel-matched 5.14.0-284.92.1.el9_2, kernel-debuginfo-common-s390x 5.14.0-284.92.1.el9_2, +5 more
    fixed: vendor fix RHSA-2024:9497
  • Red Hat Enterprise Linux AppStream EUS (v.9.4) rv 5.14.0-427.44.1.el9_4, perf 5.14.0-427.44.1.el9_4, rtla 5.14.0-427.44.1.el9_4, kernel-devel-matched 5.14.0-427.44.1.el9_4, kernel-64k-devel-matched 5.14.0-427.44.1.el9_4, kernel-debug-devel-matched 5.14.0-427.44.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:9546
show 15 more
  • Red Hat Enterprise Linux BaseOS (v. 8) perf 4.18.0-553.16.1.el8_10, kernel 4.18.0-553.16.1.el8_10, bpftool 4.18.0-553.16.1.el8_10, kernel-core 4.18.0-553.16.1.el8_10, kernel-tools 4.18.0-553.16.1.el8_10, python3-perf 4.18.0-553.16.1.el8_10, +15 more
    fixed: vendor fix RHSA-2024:5101
  • Red Hat Enterprise Linux BaseOS (v. 9) bpftool 7.4.0-503.11.1.el9_5, kernel 5.14.0-503.11.1.el9_5, kernel-64k 5.14.0-503.11.1.el9_5, kernel-core 5.14.0-503.11.1.el9_5, kernel-tools 5.14.0-503.11.1.el9_5, python3-perf 5.14.0-503.11.1.el9_5, +29 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux BaseOS EUS (v.8.8) perf 4.18.0-477.81.1.el8_8, kernel 4.18.0-477.81.1.el8_8, bpftool 4.18.0-477.81.1.el8_8, kernel-core 4.18.0-477.81.1.el8_8, kernel-tools 4.18.0-477.81.1.el8_8, python3-perf 4.18.0-477.81.1.el8_8, +15 more
    fixed: vendor fix RHSA-2024:10262
  • Red Hat Enterprise Linux BaseOS EUS (v.9.2) bpftool 7.0.0-284.92.1.el9_2, kernel 5.14.0-284.92.1.el9_2, kernel-64k 5.14.0-284.92.1.el9_2, kernel-core 5.14.0-284.92.1.el9_2, kernel-tools 5.14.0-284.92.1.el9_2, python3-perf 5.14.0-284.92.1.el9_2, +28 more
    fixed: vendor fix RHSA-2024:9497
  • Red Hat Enterprise Linux BaseOS EUS (v.9.4) bpftool 7.3.0-427.44.1.el9_4, kernel 5.14.0-427.44.1.el9_4, kernel-64k 5.14.0-427.44.1.el9_4, kernel-core 5.14.0-427.44.1.el9_4, kernel-tools 5.14.0-427.44.1.el9_4, python3-perf 5.14.0-427.44.1.el9_4, +28 more
    fixed: vendor fix RHSA-2024:9546
  • Red Hat Enterprise Linux CRB (v. 8) kernel-debuginfo-common-x86_64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-aarch64 4.18.0-553.16.1.el8_10, kernel-debuginfo-common-ppc64le 4.18.0-553.16.1.el8_10
    fixed: vendor fix RHSA-2024:5101
  • Red Hat Enterprise Linux NFV (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-kvm 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, +4 more
    fixed: vendor fix RHSA-2024:5102
  • Red Hat Enterprise Linux Real Time (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, kernel-rt-modules-core 5.14.0-503.11.1.el9_5, kernel-rt-debug-modules 5.14.0-503.11.1.el9_5, +4 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux Real Time EUS (v.9.2) kernel-rt 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-core 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-modules 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-debug-core 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-modules-core 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-debug-modules 5.14.0-284.92.1.rt14.377.el9_2, +4 more
    fixed: vendor fix RHSA-2024:9498
  • Red Hat Enterprise Linux Real Time EUS (v.9.4) kernel-rt 5.14.0-427.44.1.el9_4, kernel-rt-core 5.14.0-427.44.1.el9_4, kernel-rt-modules 5.14.0-427.44.1.el9_4, kernel-rt-debug-core 5.14.0-427.44.1.el9_4, kernel-rt-modules-core 5.14.0-427.44.1.el9_4, kernel-rt-debug-modules 5.14.0-427.44.1.el9_4, +4 more
    fixed: vendor fix RHSA-2024:9546
  • Red Hat Enterprise Linux Real Time for NFV (v. 9) kernel-rt 5.14.0-503.11.1.el9_5, kernel-rt-kvm 5.14.0-503.11.1.el9_5, kernel-rt-core 5.14.0-503.11.1.el9_5, kernel-rt-modules 5.14.0-503.11.1.el9_5, kernel-rt-debug-kvm 5.14.0-503.11.1.el9_5, kernel-rt-debug-core 5.14.0-503.11.1.el9_5, +6 more
    fixed: vendor fix RHSA-2024:9315
  • Red Hat Enterprise Linux Real Time for NFV EUS (v.9.2) kernel-rt 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-kvm 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-core 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-modules 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-debug-kvm 5.14.0-284.92.1.rt14.377.el9_2, kernel-rt-debug-core 5.14.0-284.92.1.rt14.377.el9_2, +6 more
    fixed: vendor fix RHSA-2024:9498
  • Red Hat Enterprise Linux Real Time for NFV EUS (v.9.4) kernel-rt 5.14.0-427.44.1.el9_4, kernel-rt-kvm 5.14.0-427.44.1.el9_4, kernel-rt-core 5.14.0-427.44.1.el9_4, kernel-rt-modules 5.14.0-427.44.1.el9_4, kernel-rt-debug-kvm 5.14.0-427.44.1.el9_4, kernel-rt-debug-core 5.14.0-427.44.1.el9_4, +6 more
    fixed: vendor fix RHSA-2024:9546
  • Red Hat Enterprise Linux RT (v. 8) kernel-rt 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-core 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-debug-modules 4.18.0-553.16.1.rt7.357.el8_10, kernel-rt-modules-extra 4.18.0-553.16.1.rt7.357.el8_10, +2 more
    fixed: vendor fix RHSA-2024:5102
  • Red Hat CodeReady Linux Builder (v. 9) kernel-cross-headers 5.14.0-503.11.1.el9_5 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 Red Hat Enterprise Linux AppStream (v. 9) kernel-headers 5.14.0-503.11.1.el9_5 Red Hat Enterprise Linux AppStream EUS (v.9.2) kernel-doc 5.14.0-284.92.1.el9_2
    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-25-226-15 updated cvss 0.0

Siemens SINEC OS

  • Siemens RUGGEDCOM RST2428P (6GK6242-6PA00) < 3.1 Siemens SCALANCE XCM-/XRM-/XCH-/XRH-300 family < 3.1
    affected: fixed in V3.1 support.industry.siemens.com
  • Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 family
    not affected

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.26% chance of exploitation in the next 30 days, higher than 17% of all scored CVEs (FIRST EPSS, 2026-11-08).

CVSS scores

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

Affected products

  • Linux Linux

Classification

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.