Odebrany

CVE-2026-98548

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

sctp: odrzuć resztę pakietu w przypadku błędu nieaktualnego pliku cookie

Kiedy skojarzenie jest w stanie COOKIE-ECHOED i peer wysyła wiadomość
dołączony pakiet [ERROR(Stale Cookie)][DATA] z jednego z pakietów innych niż podstawowe
adresów, przetwarzanie fragmentu ERROR wymaga niekrytycznego przestarzałego pliku cookie
spróbuj ponownie ścieżki sctp_sf_do_5_2_6_stale(), która kolejkuje
SCTP_CMD_DEL_NON_PRIMARY, utrzymując skojarzenie przy życiu.
sctp_cmd_del_non_primary() usuwa każdy transport inny niż podstawowy -
łącznie z transportem, którym przybył ten pakiet, a który nadal trwa
do którego odwołuje się wyszukiwanie odbierające i współdzielone przez wszystkie fragmenty pliku
pakiet przez fragment->transport.

sctp_assoc_rm_peer() przekierowuje asoc->peer.last_data_from z dala od
usunięty transport, ale zaraz potem dołączony fragment DATA
powoduje ponowną rejestrację sctp_assoc_bh_rcv().
asoc->peer.last_data_from = chunk->transport bezwarunkowy, cofanie
przekierowanie z właśnie usuniętym transportem.

Po zakończeniu pakietu odniesienie do odbioru jest odrzucane, a plik
transport jest wolny od RCU, podczas gdy stowarzyszenie, które przeżyło, zachowuje
wiszące last_data_from. Późniejszy FWD-TSN (lub opóźniony timer SACK)
sprawia, że sctp_gen_sack() wyłudza to (->param_flags i przyjaciele), i
sctp_make_sack()/sctp_outq_select_transport() może pisać do uwolnionego
obiekt i połącz go z aktualną listą transportu. To jest
użycie po zwolnieniu wyzwalane przez dowolnego złośliwego partnera SCTP (lub lokalnego
nieuprzywilejowany użytkownik działający jako jeden) bez wymaganych uprawnień:

BŁĄD: KASAN: użycie płyty po zwolnieniu w sctp_do_sm+0x498a/0x5660
Odczytaj rozmiar 4 pod adresem ffff88800e1e356c w zadaniu poc/115
Śledzenie połączenia: sctp_do_sm <- sctp_assoc_bh_rcv <- sctp_inq_push <-
sctp_rcv <- ip_protocol_deliver_rcu <- ip_rcv
Przydzielone: sctp_transport_new <- sctp_assoc_add_peer <-
sctp_process_init (przetwarzanie INIT-ACK)
Uwolniono: kfree <- sctp_transport_destroy_rcu <- rcu_core
(call_rcu ustawiony w kolejce przez sctp_transport_put na końcu sctp_rcv)
Błędny adres znajduje się 364 bajtów w zwolnionym 1024 bajcie
region [ffff88800e1e3400, ffff88800e1e3800), pamięć podręczna kmalloc-1k

Zauważ, że zatwierdzono 03a9d10ecf71 („sctp: upuść fragment, jeśli jest transport
został usunięty”) obejmuje jedynie okno pomiędzy wyszukiwaniem odbioru i
przetwarzanie fragmentów (np. ASCONF DEL-IP przeglądający zaległości w gniazdach);
tutaj transport jest usuwany *podczas* przetwarzania pakietu,
przez wcześniejszy fragment tego samego pakietu, więc spadek funkcji sctp_inq_push()
nie dociera do tej ścieżki. Zweryfikowano za pomocą dołączonego pliku [ERROR(Stale
Cookie) [DATA] + reproduktor FWD-TSN: powyższy raport KASAN nadal
uruchamia się po zastosowaniu tego zatwierdzenia i znika wraz z tą łatką na górze.

Napraw to, odrzucając resztę pakietu na tej ścieżce, zgodnie z sugestią
przez Xina. Po tym, jak BŁĄD nieaktualnego pliku cookie odesłał skojarzenie z powrotem do
COOKIE-WAIT i usunąłem pozostałe transporty inne niż podstawowe
fragmenty pakietu mogą działać tylko w przypadku ponownego uruchomienia uzgadniania
odnosząc się do usuniętego transportu przylotowego
chunk->transport: oprócz powyższej rejestracji last_data_from,
sctp_cmd_setup_t2() i narzędzia do tworzenia odpowiedzi sctp_make_*() również by to zrobiły
skopiuj ten wskaźnik do stanu skojarzenia na całe życie
sctp_assoc_rm_peer() została już oczyszczona. Pozwól partnerowi na retransmisję
je, zgodnie z tym, co sctp_inq_push() robi dla fragmentów, których
transport został usunięty przed przetworzeniem.

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