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
- git.kernel.org/stable/c/a40209d355afe4ed6d533507838c9e5cd70a76d8 commit
- git.kernel.org/stable/c/f5f4675960609d8c5ee95f027fbf6ce380f98372 commit
- git.kernel.org/stable/c/6752dfcfff3ac3e16625ebd3f0ad9630900e7e76 commit
- git.kernel.org/stable/c/9eeda3e0071a329af1eba15f4e57dc39576bb420 commit
- git.kernel.org/stable/c/e9c96d01d520498b169ce734a8ad1142bef86a30 commit
- git.kernel.org/stable/c/59f86a2908380d09cdc726461c0fbb8d8579c99f commit
- git.kernel.org/stable/c/ebfb16fc057a016abb46a9720a54abf0d4f6abe1 commit
- git.kernel.org/stable/c/a6c11c0a5235fb144a65e0cb2ffd360ddc1f6c32 commit
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 moreaffected: 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_5fixed: 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_8fixed: 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_2fixed: 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_4fixed: 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 morefixed: 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 morefixed: 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 morefixed: vendor fix RHSA-2024:9546
show 15 moreshow fewer
-
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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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_10fixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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 morefixed: 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_2not 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.1affected: fixed in V3.1 support.industry.siemens.com
-
Siemens SCALANCE XC-300/XR-300/XC-400/XR-500WG/XR-500 familynot 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
-
git.kernel.org
/stable/c/a40209d355afe4ed6d533507838c9e5cd70a76d8
patch
-
git.kernel.org
/stable/c/f5f4675960609d8c5ee95f027fbf6ce380f98372
patch
-
git.kernel.org
/stable/c/6752dfcfff3ac3e16625ebd3f0ad9630900e7e76
patch
-
git.kernel.org
/stable/c/9eeda3e0071a329af1eba15f4e57dc39576bb420
patch
-
git.kernel.org
/stable/c/e9c96d01d520498b169ce734a8ad1142bef86a30
patch
-
git.kernel.org
/stable/c/59f86a2908380d09cdc726461c0fbb8d8579c99f
patch
-
git.kernel.org
/stable/c/ebfb16fc057a016abb46a9720a54abf0d4f6abe1
patch
-
git.kernel.org
/stable/c/a6c11c0a5235fb144a65e0cb2ffd360ddc1f6c32
patch
- lists.debian.org /debian-lts-announce/2024/06/msg00020.html
Sources
- CVE List CVE-2024-31076
- NVD CVE-2024-31076
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.