CVE-2025-38658
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: nvmet: pci-epf: nvmet_req_init() uğursuz olduqda əmrləri iki dəfə tamamlamayın Uğursuz olmuş əmrlərin tamamlanmasını nvmet_req_init() və req->execute() funksiyalarına həvalə edin. Problemin təsviri: nvmet_req_init() uğursuz olduqda (məsələn, dəstəklənməyən opcode zamanı) daxili olaraq __nvmet_req_complete() funksiyasını çağırır, bu isə öz növbəsində "queue_response" callback-ini çağırır. Nəticədə nvmet_pci_epf_queue_response() çağırılır və əgər data_len 0-dırsa və ya dma_dir DMA_TO_DEVICE-dən fərqlidirsə, nvmet_pci_epf_complete_iod() çağırılır. Bu, ikiqat tamamlanmaya səbəb olur, çünki nvmet_req_init() uğursuz olduqda nvmet_pci_epf_exec_iod_work() funksiyası da nvmet_pci_epf_complete_iod()-ni çağırır. Yenidən istehsal etmə addımları: Host-da nvme-cli vasitəsilə dəstəklənməyən opcode ilə əmr göndərin, məsələn, "security receive" admin əmri: $ sudo nvme security-recv /dev/nvme0n1 -n1 -x4096 Bu, ikiqat tamamlanmanı tetikləyir, çünki nvmet_req_init() uğursuz olur və nvmet_pci_epf_queue_response() çağırılır; burada iod->dma_dir hələ də nvmet_pci_epf_alloc_iod() tərəfindən təyin edilmiş standart "DMA_NONE" vəziyyətində olduğu üçün nvmet_pci_epf_complete_iod() çağırılır. nvmet_req_init() uğursuz olduğu üçün nvmet_pci_epf_complete_iod() həmçinin nvmet_pci_epf_exec_iod_work() daxilində də çağırılır ki, bu da ikiqat tamamlanmaya gətirib çıxarır. Bu, yalnız host-a iki tamamlanma bildirişi göndərməklə kifayətlənmir, həm də PCI NVMe target-in vəziyyətini korlayaraq kernel oops xətasına səbəb olur. Bu yamaq nvmet_req_init() və req->execute() funksiyalarına bütün uğursuz əmrləri tamamlamağa imkan verir və nvmet_pci_epf_exec_iod_work() daxilindəki ikiqat tamamlanma halını aradan qaldırır, beləliklə, ikiqat tamamlanmaların baş verdiyi kənar hallar düzəldilir.
Necə düzəltmək olar
- linux linux_kernel6.16.1 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 6.14 ≤ v < 6.16.1 | 6.16.1 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.