Odebrany

CVE-2026-89595

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

fsnotify: Napraw nieaktualną maskę obiektu po równoczesnych aktualizacjach znaczników

Kiedy znak otrzyma nowy bit zdarzenia, fanotify i inotify mogą tego uniknąć
ponowne obliczenie maski obiektu, jeśli buforowany agregat już ją zawiera
trochę. Jest to ryzykowne w przypadku ponownego obliczenia wywołanego równoczesną aktualizacją
kolejny znak na tym samym złączu.

Skanowanie współbieżne może odczytać znacznik przed dodaniem nowego bitu, podczas gdy
aktualizator odczytuje stary agregat, zanim skanowanie opublikuje wynik.
Aktualizator pomija wówczas ponowne obliczenia i skan publikuje maskę bez niej
bit, pozostawiając maskę obiektu nieaktualną po zakończeniu obu aktualizacji.

Można to odtworzyć za pomocą dwóch grup fanotify oglądających ten sam i-węzeł:
jeden wątek usuwa FAN_MODIFY z jednego istniejącego znaku, podczas gdy inny wątek
dodaje FAN_MODIFY do drugiego znaku. Po powrocie obu wywołań fanotify_mark()
zapisy mogą nie wygenerować FAN_MODIFY dla grupy, której znacznik teraz zawiera
ten kawałek. Zostało to odtworzone na niezmodyfikowanym jądrze v6.12.95. The
równoważne przeplatanie inotify powoduje utratę zdarzeń IN_MODIFY.

W przypadku normalnych dodatków fanotify przelicz ponownie za każdym razem, gdy surowa maska ​​znaku
zmiany. Normalna maska nie jest czyszczona asynchronicznie, więc pozostaje niezmieniona
dodatek nie może wprowadzić brakujących odsetek. Zawsze przeliczaj maskę ignorowania
aktualizacje, ponieważ obsługa FS_MODIFY może wyczyścić maskę ignorowania bez pobierania
mark->lock, co sprawia, że porównania migawek są niewiarygodne.

Zawsze przeliczaj ponownie po aktualizacji istniejącego zegarka inotify. Jego zamiennik
path tymczasowo ustawia mark->mask na zero, dzięki czemu możliwe jest jednoczesne skanowanie
zero, nawet jeśli stara i końcowa maska ​​są równe. Przypisywanie zastępstwa
mask bezpośrednio pozwoliłaby uniknąć przejściowego zera, ale istniejących aktualizacji zegarka
są rzadkie, więc bezwarunkowe przeliczenie jest prostsze.

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