Odebrany

CVE-2026-98776

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

binderfs: napraw zapis UAF w binder_add_device

binderfs_binder_device_create() publikuje nową wersję za pomocą
d_make_persistent(), a następnie wywołuje funkcję simple_done_creating(), która spada
blokada katalogu nadrzędnego i odniesienie do dentry twórcy. To wtedy
wywołuje funkcję binder_add_device(), aby zarejestrować urządzenie w pliku global
lista urządzeń_binder.

Po zwolnieniu blokady katalogu nadrzędnego przez funkcję simple_done_creating() a
współbieżna unlinkat() może usunąć nowy wpis urządzenia. Upuszczenie
odniesienie do dentry twórcy może następnie wywołać funkcję binderfs_evict_inode(),
uwolnienie urządzenia. binder_add_device() później uzyskuje dostęp do uwolnionego
obiekt, powodując zapis UAF.

Znalezione przez zmodyfikowanego Syzkallera:

BŁĄD: KASAN: użycie płyty po zwolnieniu w hlist_add_head include/linux/list.h:1073 [inline]
BŁĄD: KASAN: płyta-use-after-free w binder_add_device+0xa9/0xc0 sterowniki/Android/binder.c:7068
Zapisz rozmiar 8 pod adresem ffff88805b340c00 za pomocą zadania syz.1.532/11389

Procesor: 0 UID: 0 PID: 11389 Comm: syz.1.532 Nieskażony 7.2.0 #4 PREEMPT (pełny)
Nazwa sprzętu: QEMU Ubuntu 24.04 PC v2 (i440FX + PIIX, poprawka arch_caps, 1996), BIOS 1.16.3-debian-1.16.3-2 01.04.2014
Zadzwoń do śledzenia:
<ZADANIE>
__dump_stack lib/dump_stack.c:94 [w linii]
dump_stack_lvl+0x10e/0x1f0 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0xf7/0x600 mm/kasan/report.c:482
kasan_report+0xe4/0x120 mm/kasan/report.c:595
hlist_add_head include/linux/list.h:1073 [w linii]
binder_add_device+0xa9/0xc0 sterowniki/Android/binder.c:7068
binderfs_binder_device_create.isra.0+0x724/0x990 sterowniki/android/binderfs.c:196
binder_ctl_ioctl+0x186/0x1b0 sterowniki/Android/binderfs.c:241
vfs_ioctl fs/ioctl.c:51 [w linii]
__do_sys_ioctl fs/ioctl.c:597 [w linii]
__se_sys_ioctl fs/ioctl.c:583 [w linii]
__x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [wbudowane]
do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94
wpis_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7ff9027a833d
Kod: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ff903674018 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00007ff902a35fa0 RCX: 00007ff9027a833d
RDX: 0000200000000500 RSI: 00000000c1086201 RDI: 0000000000000004
RBP: 00007ff902850733 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ff902a36038 R14: 00007ff902a35fa0 R15: 00007ffd7166bfa0
</ZADANIE>

Przydzielone przez zadanie 11389:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:57
kasan_save_track+0x14/0x30 mm/kasan/common.c:78
trucizna_kmalloc_redzone mm/kasan/common.c:398 [w linii]
__kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:415
kasan_kmalloc include/linux/kasan.h:263 [w linii]
__kmalloc_cache_noprof+0x2e4/0x6f0 mm/slub.c:5489
_kmalloc_noprof include/linux/slab.h:988 [w linii]
_kzalloc_noprof include/linux/slab.h:1309 [w linii]
binderfs_binder_device_create.isra.0+0x17a/0x990 sterowniki/android/binderfs.c:148
binder_ctl_ioctl+0x186/0x1b0 sterowniki/Android/binderfs.c:241
vfs_ioctl fs/ioctl.c:51 [w linii]
__do_sys_ioctl fs/ioctl.c:597 [w linii]
__se_sys_ioctl fs/ioctl.c:583 [w linii]
__x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [wbudowane]
do_syscall_64+0x116/0x800 arch/x86/entry/syscall_64.c:94
wpis_SYSCALL_64_after_hwframe+0x77/0x7f

Uwolniony przez zadanie 11389:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:57
kasan_save_track+0x14/0x30 mm/kasan/common.c:78
kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:584
trujący_slab_object mm/kasan/common.c:253 [w linii]
__kasan_slab_free+0x5f/0x80 mm/kasan/common.c:285
kasan_slab_free include/linux/kasan.h:235 [w linii]
płyta_free_hook mm/slub.c:2677 [w linii]
płyta_free mm/slub.c:6377 [w linii]
kfree+0x2fc/0x6e0 mm/slub.c:6692
binderf
---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