CVE-2026-90140
>_ Opis
Tłumaczenie automatyczne – może zawierać nieścisłości.
W jądrze Linuksa usunięto następującą lukę:
przyczyna: poczekaj na oczekujące wywołania zwrotne RCU przy wyjściu z modułu
Od czasu zatwierdzenia 053fc4f755ad („bezpiecznik: napraw UAF w ścieżkach RCU”),
bezpiecznik_conn_put() zwalnia bezpiecznik_conn poprzez call_rcu() zamiast
synchronicznie. Dla cuse fc->release to cuse_fc_release(), która
mieszka w module cuse. Jeśli moduł zostanie usunięty przed RCU
kończy się okres karencji, wywołanie zwrotne przechodzi do zwolnionej pamięci modułu:
wyładowanie przestrzeni użytkownika / modułu | Oprogramowanie RCU
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
zamknij(/dev/cuse) |
cuse_channel_release() |
bezpiecznik_dev_release() |
bezpiecznik_conn_put(fch->połączenie) |
call_rcu(delayed_release) --+--------> wywołanie zwrotne w kolejce
|
rmmod przyczyna |
cuse_exit() |
cuse_channel_destroy() |
... |
powrót |
|
<tekst modułu zwolniony> |
| rcu_do_batch()
| opóźnione_uwolnienie()
| fc->release()
| -> cuse_fc_release()
| ^^^ Uwolniony tekst!
Tekst uwolnionego modułu nie jest mapowany przez vfree(), więc przejdź do
nieaktualne wywołanie zwrotne powoduje błąd strony. Ups. Jeśli adres wirtualny
zostanie następnie ponownie użyty, wywołanie zwrotne może wykonać niepowiązany kod
(nieokreślone zachowanie).
Napraw ten problem, wywołując funkcję rcu_barrier() w funkcji cuse_exit(), tak aby wszystkie oczekujące
Wywołanie zwrotne wydania bezpiecznika kończy się przed usunięciem modułu.
>_ Referencje
- https://git.kernel.org/stable/c/389bd349ddbcf90dbd8a4f2a4ab6e552d53df134
- https://git.kernel.org/stable/c/45ae914b2f6ea56fc2f1c017fdee4e995bcb4c0e
- https://git.kernel.org/stable/c/4deb3edead0c0e172cc7349e8855d741d3c5e162
- https://git.kernel.org/stable/c/7fe415e1cd8fa875be263670c0ab47109818abb6
- https://git.kernel.org/stable/c/a1b46aee33d83f14ed62d7fdef1a91d3e0b732a9
- https://git.kernel.org/stable/c/ac5c499413385cea3e0220d6050408d50842891d
- https://git.kernel.org/stable/c/c40f3f24839f8404325a2099e26c2a04786ae309
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