Odebrany

CVE-2026-98200

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

hwmon: (hp-wmi-sensors) Napraw funkcję „use-after-free” w funible_show()

nsensor->current_state jest dynamicznie zastępowany stanem czujnika
zmiany. update_numeric_sensor_from_wobj() robi to, zwalniając plik
stary ciąg i instalowanie nowego:

if (strcmp(przycięty, nsensor->bieżący stan)) {
nowy_string = hp_wmi_strdup(dev, przycięty);
if (nowy_ciąg) {
devm_kfree(dev, nsensor->bieżący_stan);
nsensor->bieżący stan = nowy_ciąg;
}
}

Ta funkcja jest wywoływana tylko z funkcji hp_wmi_update_info() while
stan->blokada jest utrzymywana, więc samo zwolnienie i zamiana jest prawidłowe
serializowane względem równoczesnych aktualizacji.

Jednakże funible_show() odczytuje ten sam wskaźnik po zamknięciu blokady
już spadło:

err = hp_wmi_update_info(stan, informacje);
jeśli (błąd)
zwróć błąd;

przełącznik (podpora) {
...
sprawa HP_WMI_PROPERTY_CURRENT_STATE:
seq_printf(seqf, "%s\n", nsensor->bieżący_stan);
przerwa;

hp_wmi_update_info() przyjmuje stan->blokadę wewnętrznie i zwalnia ją
przed powrotem, więc do czasu wyłuskania funkcji fible_show().
nsensor->current_state w seq_printf(), żadna blokada nie jest utrzymywana. Dwa
procesy odczytujące wpis debugfs current_state czujnika pod adresem
nakładające się czasy (lub jeden czytający, a drugi czytający to samo
sensor wyzwala odświeżenie) może się ścigać: funkcja seq_printf() jednego wątku może
być w połowie drukowania ciągu znaków w innym
wywołanie wątku do update_numeric_sensor_from_wobj() zwalnia go za pomocą
devm_kfree() i instaluje nowy wskaźnik, powodując użycie po zwolnieniu
przeczytaj.

Weź stan->zablokuj odczyt również w funible_show(), więc tak
nigdy nie może działać jednocześnie z funkcją uwolnij i zamień
update_numeric_sensor_from_wobj().

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