Odebrany

CVE-2026-90081

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

net/rds: użyj wq_has_sleeper() w rds_cong_map_updated()

rds_cong_map_updated() działa po wykonaniu mapy przeciążenia partnera
przepisany (przez rds_tcp_cong_recv() i rds_ib_cong_recv() lub
clear-all w ścieżkach pętli zwrotnej i zakończenia wysyłania IB). To uderza
rds_cong_generacja, a następnie sprawdza funkcję Waitqueue_active() włączoną
map->m_waitq i na rds_poll_waitq, żeby zdecydować, czy ktoś potrzebuje
przebudzenie. atomic_inc() nie ma kolejności, a waitqueue_active() to a
zwykły ładunek, więc nic wcześniej nie porządkuje map i sklepów generacji
czyta kolejka oczekujących. Kelnerzy robią lustrzane odbicie: rds_cong_wait()
dodaje się do m_waitq, a następnie testuje bit portu i rds_poll()
rejestruje się na rds_poll_waitq, a następnie odczytuje generację. To znaczy
wzorzec buforowania sklepu opisany powyżej waitqueue_active() w
include/linux/wait.h - aktualizator może zaobserwować pustą kolejkę oczekiwania
podczas gdy kelner nadal uważa, że port jest zatłoczony i nie budzi go
jest wydawane.

rds_cong_wait() to przerywany tryb uśpienia bez limitu czasu, więc a
nadawca zablokowany na przeciążonym porcie pozostaje zablokowany aż do następnego
nadchodzi aktualizacja o przeciążeniu od tego partnera lub dostarczany jest sygnał.
Kelner poll() w ten sam sposób pomija powiadomienie o aktualizacji mapy.

Użyj funkcji wq_has_sleeper(), czyli funkcji waitqueue_active() poprzedzonej przez
wymagana pełna bariera, tak jak robi to już rds_tcp_state_change().
ten sam wzór.

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