Odebrany

CVE-2026-98511

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ę:

drm/nouveau: nie zwiększaj liczby pinów w przypadku nieudanego ponownego przypięcia w nouveau_bo_pin_locked()

nouveau_bo_pin_locked() sprawdza, czy już przypięty BO znajduje się w a
domena pamięci zgodna z nowym żądaniem PIN. Kiedy domeny są
niekompatybilny, ustawia -EBUSY, ale nadal wywołuje wcześniej ttm_bo_pin().
powrót.

Osoby wywołujące traktują nieudaną metodę nouveau_bo_pin() jako niezdolną do uzyskania nowego kodu PIN,
więc liczba dodatkowych pinów nigdy nie jest zmniejszana przez pasujące odpięcie.
To wyzwala ostrzeżenie w ttm_bo_release():

WARN_ON_ONCE(bo->liczba pinów);

Znaleziono podczas fuzzowania sterownika nouveau ze zmodyfikowanym Syzkallerem:

OSTRZEŻENIE: sterowniki/gpu/drm/ttm/ttm_bo.c:256 w ttm_bo_release+0x827/0x9e0 sterowniki/gpu/drm/ttm/ttm_bo.c:256, CPU#1: syz.3.24/2212
Moduły połączone w:
Procesor: 1 UID: 0 PID: 2212 Comm: syz.3.24 Nieskażony 7.2.0 #24 PREEMPT (leniwy)
nouveau 0000:01:00.0: gsp:msg fn:103 dł:0x40/0x20 res:0x19 resp:0x19
Nazwa sprzętu: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 01.04.2014
RIP: 0010:ttm_bo_release+0x827/0x9e0 sterowniki/gpu/drm/ttm/ttm_bo.c:256
Kod: 02 00 0f 85 51 01 00 00 48 8b 7b 08 e8 d2 20 01 00 e9 80 fd ff ff e8 d8 15 c0 fe 90 0f 0b 90 e9 e1 f8 ff ff e8 ca 15 c0 fe 90 <0f> 0b 90 e9 a4 f8 ff ff e8 bc 15 c0 fe być 03 00 00 00 4c 89 e7 e8
msg: 00000000: 05 00 d0 c1 04 00 f0 f1 01 30 00 00 2d 90 00 00.....0..-...
RSP: 0018:ffffc9000f5cf710 EFLAGS: 00010293
RAX: 0000000000000000 RBX: ffff888018e5d2a8 RCX: ffffffff82bb1b36
RDX: ffff888017b68000 RSI: 0000000000000004 RDI: ffff888018e5d2a8
wiadomość: 00000010: 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .............
RBP: ffff88801261c720 R08: 0000000000000001 R09: ffffed10031cba55
R10: ffff888018e5d2ab R11: 00000000000000f3 R12: ffff888018e5d290
R13: ffff888018e5d2d4 R14: ffff88801b219c18 R15: dffffc0000000000
FS: 0000000000000000(0000) GS:ffff8880e0f6f000(0000) knlGS:00000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000001b31223ffc CR3: 0000000028e00005 CR4: 0000000000770ef0
PKRU: 80000000
Zadzwoń do śledzenia:
<ZADANIE>
kref_put include/linux/kref.h:65 [w linii]
ttm_bo_put sterowniki/gpu/drm/ttm/ttm_bo.c:325 [wbudowane]
ttm_bo_fini+0x55/0x80 sterowniki/gpu/drm/ttm/ttm_bo.c:330
nouveau_gem_object_del+0xb2/0x1b0 sterowniki/gpu/drm/nouveau/nouveau_gem.c:90
drm_gem_object_free+0x5f/0x90 sterowniki/gpu/drm/drm_gem.c:1165
kref_put include/linux/kref.h:65 [w linii]
__drm_gem_object_put include/drm/drm_gem.h:562 [w linii]
drm_gem_object_put include/drm/drm_gem.h:575 [w linii]
nouveau_abi16_chan_fini.constprop.0+0x44f/0x5a0 sterowniki/gpu/drm/nouveau/nouveau_abi16.c:195
nouveau 0000:01:00.0: syz.2.23[2209]: Nieznany uchwyt 0x00000000
nouveau_abi16_fini+0x1d0/0x340 sterowniki/gpu/drm/nouveau/nouveau_abi16.c:225
nouveau_drm_postclose+0x18b/0x3e0 sterowniki/gpu/drm/nouveau/nouveau_drm.c:1284
nouveau 0000:01:00.0: syz.2.23[2209]: valid_init
drm_file_free.part.0+0x6d6/0xb60 sterowniki/gpu/drm/drm_file.c:267
drm_file_free sterowniki/gpu/drm/drm_file.c:237 [inline]
drm_close_helper.isra.0+0x11a/0x160 sterowniki/gpu/drm/drm_file.c:290
drm_release+0x1ab/0x330 sterowniki/gpu/drm/drm_file.c:438
__fput+0x39c/0xa60 fs/file_table.c:512
nouveau 0000:01:00.0: syz.2.23[2209]: zatwierdź: -2
task_work_run+0x15a/0x230 jądro/task_work.c:233
exit_task_work include/linux/task_work.h:40 [inline]
do_exit+0x82b/0x25a0 jądro/exit.c:1009
do_group_exit+0xc2/0x280 jądro/exit.c:1152
get_signal+0x1d6e/0x1f30 jądro/signal.c:3046
arch_do_signal_or_restart+0x7d/0x6e0 arch/x86/kernel/signal.c:337
__exit_to_user_mode_loop kernel/entry/common.c:66 [inline]
exit_to_user_mode_loop+0xdf/0x440 kernel/entry/common.c:101
__exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [w linii]
syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline]
do_syscall_64+0x4f8/0x690 arch/x86/entry/syscall_64.c:100
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
RI
---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