CVE-2025-38104

Orta

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: drm/amdgpu: SRIOV'da Öncelik Tersinmesi'ni (Priority Inversion) önlemek için RLCG yazmaç erişiminde Mutex yerine Spinlock kullanılmıştır. RLCG Yazmaç Erişimi; TLB temizlemeleri ve yazmaç okumaları dahil olmak üzere, sanallaştırılmış bir ortamda sanal fonksiyonların GPU yazmaçlarına güvenli bir şekilde erişmesini sağlayan bir yöntemdir. Birden fazla iş parçacığı veya VF aynı yazmaçlara eş zamanlı olarak erişmeye çalıştığında, bu durum yarış durumlarına (race conditions) yol açabilir. Sürücü, RLCG arayüzünü kullanarak yazmaçlara erişimi serileştirebilir. Bu, yazmaçlara aynı anda yalnızca bir iş parçacığının erişebileceği anlamına gelir; böylece çatışmalar önlenir ve işlemlerin doğru şekilde gerçekleştirilmesi sağlanır. Ek olarak, düşük öncelikli bir görev, yüksek öncelikli bir görevin ihtiyaç duyduğu bir mutex'i tuttuğunda, yani spinlock tutan bir iş parçacığı bir mutex edinmeye çalıştığında, bu durum öncelik tersinmesine yol açabilir. Özellikle hızlı bir kod yolundaki amdgpu_virt_rlcg_reg_rw içindeki yazmaç erişimi kritiktir. Çağrı yığını, mutex edinmeye çalışan amdgpu_virt_rlcg_reg_rw fonksiyonunun çağrıldığını göstermektedir. Bu fonksiyon, gmc_v11_0_flush_gpu_tlb tarafından çağrılan amdgpu_sriov_wreg üzerinden tetiklenmektedir. [ BUG: Invalid wait context ] hatası, bir iş parçacığının uykuya dalmasına izin verilmeyen bir bağlamdayken (bir spinlock tutmak gibi) bir mutex edinmeye çalıştığını belirtir. Aşağıdaki sorun düzeltilmiştir: [ 253.013423] ============================= [ 253.013434] [ BUG: Invalid wait context ] [ 253.013446] 6.12.0-amdstaging-drm-next-lol-050225 #14 Tainted: G U OE [ 253.013464] ----------------------------- [ 253.013475] kworker/0:1/10 is trying to lock: [ 253.013487] ffff9f30542e3cf8 (&adev->virt.rlcg_reg_lock){+.+.}-{3:3}, at: amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu] [ 253.013815] other info that might help us debug this: [ 253.013827] context-{4:4} [ 253.013835] 3 locks held by kworker/0:1/10: [ 253.013847] #0: ffff9f3040050f58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x3f5/0x680 [ 253.013877] #1: ffffb789c008be40 ((work_completion)(&wfc.work)){+.+.}-{0:0}, at: process_one_work+0x1d6/0x680 [ 253.013905] #2: ffff9f3054281838 (&adev->gmc.invalidate_lock){+.+.}-{2:2}, at: gmc_v11_0_flush_gpu_tlb+0x198/0x4f0 [amdgpu] [ 253.014154] stack backtrace: [ 253.014164] CPU: 0 UID: 0 PID: 10 Comm: kworker/0:1 Tainted: G U OE 6.12.0-amdstaging-drm-next-lol-050225 #14 [ 253.014189] Tainted: [U]=USER, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE [ 253.014203] Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 11/18/2024 [ 253.014224] Workqueue: events work_for_cpu_fn [ 253.014241] Call Trace: [ 253.014250] <TASK> [ 253.014260] dump_stack_lvl+0x9b/0xf0 [ 253.014275] dump_stack+0x10/0x20 [ 253.014287] __lock_acquire+0xa47/0x2810 [ 253.014303] ? srso_alias_return_thunk+0x5/0xfbef5 [ 253.014321] lock_acquire+0xd1/0x300 [ 253.014333] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu] [ 253.014562] ? __lock_acquire+0xa6b/0x2810 [ 253.014578] __mutex_lock+0x85/0xe20 [ 253.014591] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu] [ 253.014782] ? sched_clock_noinstr+0x9/0x10 [ 253.014795] ? srso_alias_return_thunk+0x5/0xfbef5 [ 253.014808] ? local_clock_noinstr+0xe/0xc0 [ 253.014822] ? amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu] [ 253.015012] ? srso_alias_return_thunk+0x5/0xfbef5 [ 253.015029] mutex_lock_nested+0x1b/0x30 [ 253.015044] ? mutex_lock_nested+0x1b/0x30 [ 253.015057] amdgpu_virt_rlcg_reg_rw+0xf6/0x330 [amdgpu] [ 253.015249] amdgpu_sriov_wreg+0xc5/0xd0 [amdgpu] [ 253.015435] gmc_v11_0_flush_gpu_tlb+0x44b/0x4f0 [amdgpu] [ 253.015667] gfx_v11_0_hw_init+0x499/0x29c0 [amdgpu] [ 253.015901] ? __pfx_smu_v13_0_update_pcie_parameters+0x10/0x10 [amdgpu] [ 253.016159] ? srso_alias_return_thunk+0x5/0xfbef5 [ 253.016173] ? smu_hw_init+0x18d/0x300 [amdgpu] [ 253.016403] amdgpu_device_init+0x29ad/0x36a0 [amdgpu] [ 253.016614] amdgpu_driver_load_kms+0x1a/0xc0 [amdgpu] [ 253.0170 ---kesildi---

ÖnemOrta
CVSS4.7
İstismar olasılığı—
ÜrünLinux Kernel
Yayın18 Nis 2025
İlk görülme18 Nis 2025

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel6.2, 6.7, 6.12.39, 6.13.11, 6.14.2 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel6.1.105 ≤ v < 6.2, 6.6.46 ≤ v < 6.7, 6.10.5 ≤ v < 6.12.39, 6.13 ≤ v < 6.13.11, 6.14 ≤ v < 6.14.26.2, 6.7, 6.12.39, 6.13.11, 6.14.2

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.

CVE-2025-38104 · Linux Kernel · Dark Radar