Vulnerability · Published May 1, 2024 · Assigned by Linux
CVE-2024-26984nouveau: fix instmem race condition around ptr stores
Medium 5.5
In plain English
A medium-severity race condition in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 10% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
In the Linux kernel, the following vulnerability has been resolved: nouveau: fix instmem race condition around ptr stores Running a lot of VK CTS in parallel against nouveau, once every few hours you might see something like this crash. BUG: kernel NULL pointer dereference, address: 0000000000000008 PGD 8000000114e6e067 P4D 8000000114e6e067 PUD 109046067 PMD 0 Oops: 0000 [#1] PREEMPT SMP PTI CPU: 7 PID: 53891 Comm: deqp-vk Not tainted 6.8.0-rc6+ #27 Hardware name: Gigabyte Technology Co., Ltd. Z390 I AORUS PRO WIFI/Z390 I AORUS PRO WIFI-CF, BIOS F8 11/05/2021 RIP: 0010:gp100_vmm_pgt_mem+0xe3/0x180 [nouveau] Code: c7 48 01 c8 49 89 45 58 85 d2 0f 84 95 00 00 00 41 0f b7 46 12 49 8b 7e 08 89 da 42 8d 2c f8 48 8b 47 08 41 83 c7 01 48 89 ee <48> 8b 40 08 ff d0 0f 1f 00 49 8b 7e 08 48 89 d9 48 8d 75 04 48 c1 RSP: 0000:ffffac20c5857838 EFLAGS: 00010202 RAX: 0000000000000000 RBX: 00000000004d8001 RCX: 0000000000000001 RDX: 00000000004d8001 RSI: 00000000000006d8 RDI: ffffa07afe332180 RBP: 00000000000006d8 R08: ffffac20c5857ad0 R09: 0000000000ffff10 R10: 0000000000000001 R11: ffffa07af27e2de0 R12: 000000000000001c R13: ffffac20c5857ad0 R14: ffffa07a96fe9040 R15: 000000000000001c FS: 00007fe395eed7c0(0000) GS:ffffa07e2c980000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000008 CR3: 000000011febe001 CR4: 00000000003706f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace: ... ? gp100_vmm_pgt_mem+0xe3/0x180 [nouveau] ? gp100_vmm_pgt_mem+0x37/0x180 [nouveau] nvkm_vmm_iter+0x351/0xa20 [nouveau] ? __pfx_nvkm_vmm_ref_ptes+0x10/0x10 [nouveau] ? __pfx_gp100_vmm_pgt_mem+0x10/0x10 [nouveau] ? __pfx_gp100_vmm_pgt_mem+0x10/0x10 [nouveau] ? __lock_acquire+0x3ed/0x2170 ? __pfx_gp100_vmm_pgt_mem+0x10/0x10 [nouveau] nvkm_vmm_ptes_get_map+0xc2/0x100 [nouveau] ? __pfx_nvkm_vmm_ref_ptes+0x10/0x10 [nouveau] ? __pfx_gp100_vmm_pgt_mem+0x10/0x10 [nouveau] nvkm_vmm_map_locked+0x224/0x3a0 [nouveau] Adding any sort of useful debug usually makes it go away, so I hand wrote the function in a line, and debugged the asm. Every so often pt->memory->ptrs is NULL. This ptrs ptr is set in the nv50_instobj_acquire called from nvkm_kmap. If Thread A and Thread B both get to nv50_instobj_acquire around the same time, and Thread A hits the refcount_set line, and in lockstep thread B succeeds at refcount_inc_not_zero, there is a chance the ptrs value won't have been stored since refcount_set is unordered. Force a memory barrier here, I picked smp_mb, since we want it on all CPUs and it's write followed by a read. v2: use paired smp_rmb/smp_wmb.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| AlmaLinux:8 | bpftool | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-abi-stablelists | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-core | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-cross-headers | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-debug | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-debug-core | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-debug-devel | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-debug-modules | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-debug-modules-extra | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-devel | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-doc | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-headers | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-modules | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-modules-extra | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-rt | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-core | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-debug | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-debug-core | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-debug-devel | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-debug-modules | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-debug-modules-extra | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-devel | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-modules | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-rt-modules-extra | 4.18.0-553.117.1.rt7.458.el8_10 | ALSA-2026:6572 |
| AlmaLinux:8 | kernel-tools | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-tools-libs | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-tools-libs-devel | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-zfcpdump | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-zfcpdump-core | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-zfcpdump-devel | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-zfcpdump-modules | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | kernel-zfcpdump-modules-extra | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | perf | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| AlmaLinux:8 | python3-perf | 4.18.0-553.117.1.el8_10 | ALSA-2026:6571 |
| Debian:12 | linux | 6.1.90-1 | DSA-5680-1 |
| Debian:12 | linux | 6.1.90-1 | DEBIAN-CVE-2024-26984 |
| Debian:13 | linux | 6.8.9-1 | DEBIAN-CVE-2024-26984 |
| Debian:14 | linux | 6.8.9-1 | DEBIAN-CVE-2024-26984 |
| Rocky Linux:8 | kernel | 0:4.18.0-553.117.1.el8_10 | RLSA-2026:6571 |
| Rocky Linux:8 | kernel-rt | 0:4.18.0-553.117.1.rt7.458.el8_10 | RLSA-2026:6572 |
| Ubuntu:22.04:LTS | linux | 5.15.0-116.126 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux | 5.15.0-116.126 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux | 6.8.0-38.38 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux | 6.8.0-38.38 | USN-6893-1 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-aws | 5.15.0-1065.71 | USN-6898-3 |
| Ubuntu:22.04:LTS | linux-aws | 5.15.0-1065.71 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-aws | 6.8.0-1011.12 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-aws | 6.8.0-1011.12 | USN-6893-3 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-aws-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-aws-6.8 | 6.8.0-1011.12~22.04.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure | 5.15.0-1068.77 | USN-6917-1 |
| Ubuntu:22.04:LTS | linux-azure | 5.15.0-1068.77 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-azure | 6.8.0-1010.10 | USN-6893-1 |
| Ubuntu:24.04:LTS | linux-azure | 6.8.0-1010.10 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-6.8 | 6.8.0-1010.10~22.04.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-fde | 5.15.0-1068.77.1 | USN-6917-1 |
| Ubuntu:22.04:LTS | linux-azure-fde | 5.15.0-1068.77.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-gcp | 5.15.0-1064.72 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-gcp | 5.15.0-1064.72 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-gcp | 6.8.0-1010.11 | USN-6893-1 |
| Ubuntu:24.04:LTS | linux-gcp | 6.8.0-1010.11 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-gcp-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-gke | 5.15.0-1062.68 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-gke | 5.15.0-1062.68 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-gke | 6.8.0-1006.9 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-gke | 6.8.0-1006.9 | USN-6893-2 |
| Ubuntu:22.04:LTS | linux-gkeop | 5.15.0-1048.55 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-gkeop | 5.15.0-1048.55 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-hwe-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-ibm | 5.15.0-1058.61 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-ibm | 5.15.0-1058.61 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-ibm | 6.8.0-1008.8 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-ibm | 6.8.0-1008.8 | USN-6893-1 |
| Ubuntu:24.04:LTS | linux-intel | 6.8.0-1007.14 | USN-6893-1 |
| Ubuntu:24.04:LTS | linux-intel | 6.8.0-1007.14 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 5.15.0-1060.66 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 5.15.0-1060.66 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-kvm | 5.15.0-1062.67 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-kvm | 5.15.0-1062.67 | USN-6898-1 |
| Ubuntu:22.04:LTS | linux-lowlatency | 5.15.0-116.126 | USN-6898-2 |
| Ubuntu:22.04:LTS | linux-lowlatency | 5.15.0-116.126 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-lowlatency | 6.8.0-38.38.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-lowlatency | 6.8.0-38.38.1 | USN-6893-1 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia | 5.15.0-1060.61 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia | 5.15.0-1060.61 | USN-6898-1 |
| Ubuntu:24.04:LTS | linux-nvidia | 6.8.0-1009.9 | USN-6893-2 |
| Ubuntu:24.04:LTS | linux-nvidia | 6.8.0-1009.9 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia-6.8 | 6.8.0-1009.9~22.04.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra | 5.15.0-1026.26 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra-igx | 5.15.0-1015.15 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oem-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-oem-6.8 | 6.8.0-1008.8 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-oem-6.8 | 6.8.0-1008.8 | USN-6893-1 |
| Ubuntu:22.04:LTS | linux-oracle | 5.15.0-1063.69 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oracle | 5.15.0-1063.69 | USN-6898-1 |
| Ubuntu:24.04:LTS | linux-oracle | 6.8.0-1008.8 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-oracle | 6.8.0-1008.8 | USN-6918-1 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-oracle-6.8 | 6.8.0-1008.8~22.04.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-raspi | 5.15.0-1058.61 | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-raspi | 6.8.0-1007.7 | USN-6893-1 |
| Ubuntu:24.04:LTS | linux-raspi | 6.8.0-1007.7 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:24.04:LTS | linux-riscv | 6.8.0-38.38.1 | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-riscv-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-starfive-6.5 | no fix listed | UBUNTU-CVE-2024-26984 |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 5.15.0-1035.39 | UBUNTU-CVE-2024-26984 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before bba8ec5e9b16649d85bc9e9086bf7ae5b5716ff9be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before 1bc4825d4c3ec6abe43cf06c3c39d664d044cbf7be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before 13d76b2f443dc371842916dd8768009ff1594716be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before 3ab056814cd8ab84744c9a19ef51360b2271c572be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before ad74d208f213c06d860916ad40f609ade8c13039be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before a019b44b1bc6ed224c46fb5f88a8a10dd116e525be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before 21ca9539f09360fd83654f78f2c361f2f5ddcb52be55287aa5ba6895e9d4d3ed2f08a1be7a065957 – before fff1386cc889d8fb4089d285f883f8cba62d82ce |
| Linux | Linux | 4.15 |
Weakness: CWE-362 · Vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
References
- https://git.kernel.org/stable/c/bba8ec5e9b16649d85bc9e9086bf7ae5b5716ff9
- https://git.kernel.org/stable/c/1bc4825d4c3ec6abe43cf06c3c39d664d044cbf7
- https://git.kernel.org/stable/c/13d76b2f443dc371842916dd8768009ff1594716
- https://git.kernel.org/stable/c/3ab056814cd8ab84744c9a19ef51360b2271c572
- https://git.kernel.org/stable/c/ad74d208f213c06d860916ad40f609ade8c13039
- https://git.kernel.org/stable/c/a019b44b1bc6ed224c46fb5f88a8a10dd116e525
- https://git.kernel.org/stable/c/21ca9539f09360fd83654f78f2c361f2f5ddcb52
- https://git.kernel.org/stable/c/fff1386cc889d8fb4089d285f883f8cba62d82ce
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html x_transferred
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html x_transferred
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/DAMSOZXJEPUOXW33WZYWCVAY7Z5S7OOY/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/4EZ6PJW7VOZ224TD7N4JZNU6KV32ZJ53/
- https://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/GCBZZEC7L7KTWWAS2NLJK6SO3IZIL4WW/