Odebrany

CVE-2026-90229

opublikowano:
modyfikacja:
Ocena CVSS
n/a
Brak oceny

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

W jądrze Linuksa usunięto następującą lukę:

nvme-apple: Zniszcz kolejkę administratora podczas usuwania

Kolejka administracyjna jest przydzielana za pomocą blk_mq_alloc_queue(), ale nigdy
zniszczone. nvme_free_ctrl() usuwa tylko ostatnie odwołanie i
blk_mq_exit_queue() i blk_sync_queue() nigdy nie działają: hctx nigdy nie jest uruchamiany
przeniesiono do q->unused_hctx_list, a licznik czasu oczekiwania i praca pozostają włączone
kolejka, która wkrótce zostanie zwolniona i która w końcu wpadnie do środka
blk_mq_timeout_work().

Można to uruchomić tylko wtedy, gdy kontroler nie pojawi się, a jest
następnie natychmiast zburzony i dlatego nikt nigdy na to nie wpadł
wcześniej.

Skopiujmy po prostu to, co robi sterownik pcie: wycisz i zniszcz administratora
kolejka przed nvme_uninit_ctrl().

Dzięki temu nie pojawia się już następujące OSTRZEŻENIE, po którym następuje panika:

OSTRZEŻENIE: block/blk-mq.c:4390 w blk_mq_release+0x194/0x238, CPU#4: kworker/u34:4/119
Procesor: 4 UID: 0 PID: 119 Comm: kworker/u34:4 Nieskażony 7.2.0-rc1-dirty #248 PREEMPT
Nazwa sprzętu: Apple Mac mini (M1, 2020) (DT)
Kolejka robocza: nvme-wq apple_nvme_remove_dead_ctrl_work
pstan: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
komputer: blk_mq_release+0x194/0x238
lr : blk_mq_release+0x58/0x238
sp:ffffc000833a3b50
x29: ffffc000833a3b50 x28: ffff80001d0450f8 x27: ffff800020c95200
x26: 0000000000000088 x25: 0000000000000000 x24: ffff800020f36805
x23: 0000000000000000 x22: ffffc00081a86878 x21: ffff800020be9c60
x20: 0000000000000000 x19: ffff800022501698 x18: 000000000000000a
x17: 7365757165722066 x16: 666f7265776f7020 x15: 0000000000000000
x14: 0000000000000028 x13: 0000000000004def x12: 0000000000000003
x11: 0000000000000000 x10: 0000000000000000 x9: ffffc000805b4fc8
x8: ffffc00081915820 x7: ffffc00081c4f3c8 x6: 0000000000000001
x5: 0000000000000004 x4: ffff800022498d80 x3: ffffc000833a3b14
x2 : 0000000000000000 x1 : 0000000000000000 x0 : ffff800022501698
Śledzenie połączeń:
blk_mq_release+0x194/0x238 (P)
blk_put_queue+0x8c/0xf0
nvme_free_ctrl+0x4c/0x260
wydanie_urządzenia+0x44/0x128
kobject_put+0xa0/0x120
put_device+0x1c/0x40
nvme_uninit_ctrl+0x48/0x60
apple_nvme_remove+0x54/0xb0
platforma_remove+0x28/0x40
urządzenie_usuń+0x54/0x98
urządzenie_release_driver_internal+
Device_release_driver+0x20/0x38
apple_nvme_remove_dead_ctrl_wor
proces_one_work+0x1f4/0x770
wątek_pracownika+0x1b8/0x360
kwątek+0x140/0x160
ret_from_fork+0x10/0x20
znacznik zdarzenia irq: 448
hardirqs ostatnio włączony o (447):in_unlock_irqrestore+0x74/0x80
hardirqs ostatnio wyłączony o (448): [<ffffc000811cf5c0>] el1_brk64+0x20/0x60
softirqs ostatnio włączony w (0): [ess+0xb28/0x2698
softirqs ostatnio wyłączony w (0): [<0000000000000000>] 0x0
---[koniec śledzenia 0000000000000000
Nie można obsłużyć wyłuskiwania wskaźnika NULL jądra pod adresem wirtualnym 0000000000000000
Informacje o przerwaniu pamięci:
ESR = 0x0000000096000005
EC = 0x25: DABT (prąd EL),
USTAW = 0, FnV = 0
EA = 0, S1PTW = 0
FSC = 0x05: błąd translacji poziomu 1
Informacje o przerwaniu danych:
ISV = 0, ISS = 0x00000005, ISS2 = 0x00000000
CM = 0, WnR = 0, TnD = 0, TagA
GCS = 0, Nakładka = 0, DirtyBit = 0, Xs = 0
[0000000000000000] adres użytkownika
Błąd wewnętrzny: Ups: 0000000096000005 [#1] SMP
Procesor: 7 UID: 0 PID: 54 Comm: kwor 7.2.0-rc1-dirty #248PREEMPT
Skażony: [W]=OSTRZEŻ
Nazwa sprzętu: Apple Mac mini (M1, 2020) (DT)
Kolejka robocza: kblockd blk_mq_timeou
pstan: 01400005 (nzcv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
komputer: percpu_ref_tryget_many.cons
lr : percpu_ref_tryget_many.constprop.0+0xc0/0x168
sp: ffffc000829cbce0
x29: ffffc000829cbce0 x28: ffff800020be9f48 x27: ffff800013e503c0
x26: 0000000000000108 x25: 000009c05
x23: 0000000000000000 x22: ffffc000819f5000 x21: ffff800020be9f48
x20: ffff8001deda4808 x19: ffff8000a
x17: 00000000580e1fac x16: ffffc00082bbbb7c x15: 00000000000000000
x14: 0000000000000028 x13: 000000001
x11: 0000000000000000 x10: 0000000000000000 x9: ffffc000829cbc20
x8:
---obcięty---

>_ Referencje

Dane podatności pochodzą z oficjalnych źródeł (CVE® List / NVD). Opisy po polsku są tłumaczone automatycznie i mogą zawierać nieścisłości – na stronie rekordu można wyświetlić wersję angielską.

This product uses the NVD API but is not endorsed or certified by the NVD.

Copyright © 1999–2026, The MITRE Corporation. CVE is a registered trademark and the CVE logo is a registered trademark of The MITRE Corporation.

CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE®). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy. ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN PROVIDED BY MITRE ARE PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND.

NVD Terms of Use / CVE® Terms of Use / nvd.nist.gov / cve.org