Skip to main content

CVE-2024-58018: Vulnerability in Linux Linux

High
VulnerabilityCVE-2024-58018cvecve-2024-58018
Published: Thu Feb 27 2025 (02/27/2025, 02:12:09 UTC)
Source: CVE
Vendor/Project: Linux
Product: Linux

Description

In the Linux kernel, the following vulnerability has been resolved: nvkm: correctly calculate the available space of the GSP cmdq buffer r535_gsp_cmdq_push() waits for the available page in the GSP cmdq buffer when handling a large RPC request. When it sees at least one available page in the cmdq, it quits the waiting with the amount of free buffer pages in the queue. Unfortunately, it always takes the [write pointer, buf_size) as available buffer pages before rolling back and wrongly calculates the size of the data should be copied. Thus, it can overwrite the RPC request that GSP is currently reading, which causes GSP hang due to corrupted RPC request: [ 549.209389] ------------[ cut here ]------------ [ 549.214010] WARNING: CPU: 8 PID: 6314 at drivers/gpu/drm/nouveau/nvkm/subdev/gsp/r535.c:116 r535_gsp_msgq_wait+0xd0/0x190 [nvkm] [ 549.225678] Modules linked in: nvkm(E+) gsp_log(E) snd_seq_dummy(E) snd_hrtimer(E) snd_seq(E) snd_timer(E) snd_seq_device(E) snd(E) soundcore(E) rfkill(E) qrtr(E) vfat(E) fat(E) ipmi_ssif(E) amd_atl(E) intel_rapl_msr(E) intel_rapl_common(E) mlx5_ib(E) amd64_edac(E) edac_mce_amd(E) kvm_amd(E) ib_uverbs(E) kvm(E) ib_core(E) acpi_ipmi(E) ipmi_si(E) mxm_wmi(E) ipmi_devintf(E) rapl(E) i2c_piix4(E) wmi_bmof(E) joydev(E) ptdma(E) acpi_cpufreq(E) k10temp(E) pcspkr(E) ipmi_msghandler(E) xfs(E) libcrc32c(E) ast(E) i2c_algo_bit(E) crct10dif_pclmul(E) drm_shmem_helper(E) nvme_tcp(E) crc32_pclmul(E) ahci(E) drm_kms_helper(E) libahci(E) nvme_fabrics(E) crc32c_intel(E) nvme(E) cdc_ether(E) mlx5_core(E) nvme_core(E) usbnet(E) drm(E) libata(E) ccp(E) ghash_clmulni_intel(E) mii(E) t10_pi(E) mlxfw(E) sp5100_tco(E) psample(E) pci_hyperv_intf(E) wmi(E) dm_multipath(E) sunrpc(E) dm_mirror(E) dm_region_hash(E) dm_log(E) dm_mod(E) be2iscsi(E) bnx2i(E) cnic(E) uio(E) cxgb4i(E) cxgb4(E) tls(E) libcxgbi(E) libcxgb(E) qla4xxx(E) [ 549.225752] iscsi_boot_sysfs(E) iscsi_tcp(E) libiscsi_tcp(E) libiscsi(E) scsi_transport_iscsi(E) fuse(E) [last unloaded: gsp_log(E)] [ 549.326293] CPU: 8 PID: 6314 Comm: insmod Tainted: G E 6.9.0-rc6+ #1 [ 549.334039] Hardware name: ASRockRack 1U1G-MILAN/N/ROMED8-NL, BIOS L3.12E 09/06/2022 [ 549.341781] RIP: 0010:r535_gsp_msgq_wait+0xd0/0x190 [nvkm] [ 549.347343] Code: 08 00 00 89 da c1 e2 0c 48 8d ac 11 00 10 00 00 48 8b 0c 24 48 85 c9 74 1f c1 e0 0c 4c 8d 6d 30 83 e8 30 89 01 e9 68 ff ff ff <0f> 0b 49 c7 c5 92 ff ff ff e9 5a ff ff ff ba ff ff ff ff be c0 0c [ 549.366090] RSP: 0018:ffffacbccaaeb7d0 EFLAGS: 00010246 [ 549.371315] RAX: 0000000000000000 RBX: 0000000000000012 RCX: 0000000000923e28 [ 549.378451] RDX: 0000000000000000 RSI: 0000000055555554 RDI: ffffacbccaaeb730 [ 549.385590] RBP: 0000000000000001 R08: ffff8bd14d235f70 R09: ffff8bd14d235f70 [ 549.392721] R10: 0000000000000002 R11: ffff8bd14d233864 R12: 0000000000000020 [ 549.399854] R13: ffffacbccaaeb818 R14: 0000000000000020 R15: ffff8bb298c67000 [ 549.406988] FS: 00007f5179244740(0000) GS:ffff8bd14d200000(0000) knlGS:0000000000000000 [ 549.415076] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 549.420829] CR2: 00007fa844000010 CR3: 00000001567dc005 CR4: 0000000000770ef0 [ 549.427963] PKRU: 55555554 [ 549.430672] Call Trace: [ 549.433126] <TASK> [ 549.435233] ? __warn+0x7f/0x130 [ 549.438473] ? r535_gsp_msgq_wait+0xd0/0x190 [nvkm] [ 549.443426] ? report_bug+0x18a/0x1a0 [ 549.447098] ? handle_bug+0x3c/0x70 [ 549.450589] ? exc_invalid_op+0x14/0x70 [ 549.454430] ? asm_exc_invalid_op+0x16/0x20 [ 549.458619] ? r535_gsp_msgq_wait+0xd0/0x190 [nvkm] [ 549.463565] r535_gsp_msg_recv+0x46/0x230 [nvkm] [ 549.468257] r535_gsp_rpc_push+0x106/0x160 [nvkm] [ 549.473033] r535_gsp_rpc_rm_ctrl_push+0x40/0x130 [nvkm] [ 549.478422] nvidia_grid_init_vgpu_types+0xbc/0xe0 [nvkm] [ 549.483899] nvidia_grid_init+0xb1/0xd0 [nvkm] [ 549.488420] ? srso_alias_return_thunk+0x5/0xfbef5 [ 549.493213] nvkm_device_pci_probe+0x305/0x420 [nvkm] [ 549.498338] local_pci_probe+0x46/ ---truncated---

AI-Powered Analysis

AILast updated: 06/28/2025, 09:57:00 UTC

Technical Analysis

CVE-2024-58018 is a vulnerability identified in the Linux kernel, specifically within the Nouveau driver's handling of the NVIDIA GPU's GSP (Graphics System Processor) command queue buffer. The issue arises in the function r535_gsp_cmdq_push(), which manages the queuing of RPC (Remote Procedure Call) requests to the GSP. The vulnerability is due to an incorrect calculation of the available space in the GSP cmdq buffer. The function prematurely assumes the available buffer pages as the range from the write pointer to the buffer size without properly accounting for buffer wrap-around. This miscalculation leads to an incorrect determination of how much data can be safely copied into the buffer. Consequently, it can overwrite the RPC request currently being processed by the GSP, causing data corruption. The corrupted RPC request results in the GSP hanging, effectively causing a denial of service (DoS) condition. The kernel logs indicate a warning and a stack trace pointing to the r535_gsp_msgq_wait() function, confirming the hang due to corrupted RPC requests. This vulnerability affects Linux kernel versions containing the Nouveau driver with the r535 GSP implementation, as indicated by the affected commit hashes. No public exploits are known at this time, and no CVSS score has been assigned yet. The issue is technical and specific to GPU command queue management, impacting systems using the Nouveau open-source driver for NVIDIA GPUs. The vulnerability can cause system instability or crashes when processing large RPC requests through the GSP cmdq buffer, potentially affecting GPU-accelerated workloads or virtual GPU environments relying on this driver.

Potential Impact

For European organizations, the impact of CVE-2024-58018 primarily concerns systems running Linux with NVIDIA GPUs using the Nouveau driver, especially in environments where GPU acceleration is critical, such as data centers, cloud providers, research institutions, and enterprises relying on GPU virtualization or compute workloads. The vulnerability can lead to GPU hangs and kernel warnings, resulting in system instability or crashes. This can cause denial of service on affected machines, disrupting business operations, especially in high-availability or performance-sensitive environments. Organizations using virtual GPU setups or GPU-accelerated applications may experience degraded service or outages. Although no remote code execution or privilege escalation is indicated, the DoS impact can affect service continuity and reliability. The lack of known exploits reduces immediate risk, but the vulnerability should be addressed promptly to prevent potential exploitation or accidental system failures. The impact is more pronounced in sectors with heavy Linux and GPU usage, such as scientific computing, financial services, telecommunications, and cloud infrastructure providers within Europe.

Mitigation Recommendations

1. Apply Kernel Updates: Monitor Linux kernel releases and apply patches that fix this vulnerability as soon as they become available. Since the issue is in the Nouveau driver, ensure the kernel version includes the corrected r535_gsp_cmdq_push() function logic. 2. Use Proprietary NVIDIA Drivers: Where feasible, consider using the official NVIDIA proprietary drivers instead of Nouveau, as this vulnerability is specific to the Nouveau driver implementation. 3. Limit Exposure: For critical systems, restrict access and usage of GPU resources to trusted workloads and users to minimize the risk of triggering the vulnerability. 4. Monitor System Logs: Implement monitoring for kernel warnings or GPU-related errors that may indicate attempts to exploit or accidental triggering of this vulnerability. 5. Test Updates in Staging: Before deploying kernel updates in production, test them in staging environments to ensure stability and compatibility with existing GPU workloads. 6. Coordinate with Vendors: Engage with Linux distribution maintainers and hardware vendors for timely updates and guidance. 7. Consider Workarounds: If immediate patching is not possible, consider disabling GPU acceleration features relying on the Nouveau driver or isolating affected systems until patched.

Need more detailed analysis?Get Pro

Technical Details

Data Version
5.1
Assigner Short Name
Linux
Date Reserved
2025-02-27T02:10:48.228Z
Cisa Enriched
false
Cvss Version
null
State
PUBLISHED

Threat ID: 682d9823c4522896dcbded0d

Added to database: 5/21/2025, 9:08:51 AM

Last enriched: 6/28/2025, 9:57:00 AM

Last updated: 8/12/2025, 8:02:35 PM

Views: 11

Actions

PRO

Updates to AI analysis are available only with a Pro account. Contact root@offseq.com for access.

Please log in to the Console to use AI analysis features.

Need enhanced features?

Contact root@offseq.com for Pro access with improved analysis and higher rate limits.

Latest Threats