Odebrany

CVE-2026-97420

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

bpf: zakończenie NUL zastąpiło wartość sysctl

Podczas pisania do sysctls proc_sys_call_handler() gwarantuje, że plik
bufor przekazywany do procedur obsługi proc jest zakończony znakiem NUL. Jeśli
bpf_sysctl_set_new_value() zastępuje oczekującą wartość sysctl, może
przekaż bufor zastępczy bezpośrednio procedurom obsługi proc. Jednakże,
pomocnik kopiuje obecnie tylko bajty buf_len do tego bufora bez
dołączenie terminatora NUL, narażając dalsze parsery na ataki
dostęp poza granicami.

Napraw ten problem, dodając „\0” po zastąpionej wartości, aby przywrócić
oczekiwana semantyka sysctl. Ponieważ pomocnik już odrzuca buf_len
większy niż PAGE_SIZE - 1, zawsze jest miejsce na dodatkowy bajt.

Odtworzone w gościnnym QEMU x86_64 uruchomionym z KASAN podczas ćwiczeń
ścieżka zastępcza sysctl za pomocą programu BPF cgroup/sysctl. The
cele reproduktora `/proc/sys/net/core/flow_limit_cpu_bitmap`, wypełnia
oryginalny bufor zapisu użytkownika z niezerowymi bajtami i zastępuje
sysctl, więc buforowi zastępczemu brakuje kończącej wartości NUL. Pod
tej konfiguracji, jądro przed poprawką zgłosiło:

BŁĄD: KASAN: płyta poza granicami w strnchrnul+0x72/0x90
Odczytaj rozmiar 1 pod adresem ffff88800de57000 za pomocą zadania repro_patch3/66
Procesor: 0 UID: 0 PID: 66 Comm: repro_patch3 Nieskażony 7.1.0-rc3-00269-g8370ca1f87cc #6 PREEMPT (leniwy)
Nazwa sprzętu: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 01.04.2014
Zadzwoń do śledzenia:
<ZADANIE>
dump_stack_lvl+0x68/0xa0
print_report+0xcb/0x5e0
? __virt_addr_valid+0x21d/0x3f0
? strnchrnul+0x72/0x90
? strnchrnul+0x72/0x90
kasan_report+0xca/0x100
? strnchrnul+0x72/0x90
strnchrnul+0x72/0x90
bitmap_parse+0x37/0x2e0
flow_limit_cpu_sysctl+0xc6/0x840
? __pfx_flow_limit_cpu_sysctl+0x10/0x10
? __kvmalloc_node_noprof+0x5ba/0x870
proc_sys_call_handler+0x31d/0x480
? __pfx_proc_sys_call_handler+0x10/0x10
? selinux_file_permission+0x39f/0x500
? lock_is_held_type+0x9e/0x120
vfs_write+0x98e/0x1000
...
</ZADANIE>
Błędny adres znajduje się 0 bajtów na prawo od
przydzielony region 4096 bajtów [ffff88800de56000, ffff88800de57000)
Po zastosowaniu tej poprawki ponowne uruchomienie tej samej ścieżki docelowej sysctl daje wynik
brak odpowiednich raportów KASAN.

>_ 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