Średni Oczekuje na analizę

CVE-2026-15924

opublikowano:
modyfikacja:
Ocena CVSS
5.9
Średni · v3.1
wektor: CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H

>_ Opis

Tłumaczenie automatyczne – może zawierać nieścisłości.

Warstwa gniazda TLS Zephyra w subsys/net/lib/sockets/sockets_tls.c przechowuje pojedynczą globalną tablicę procesu, client_cache, buforowanych sesji klienta, która jest współdzielona przez każdy kontekst gniazda TLS. Funkcje, które mutują i odczytują je — tls_session_save(), tls_session_get(), tls_session_cache_reset() oraz procedura obsługi przywracania ustawień — przydzielają, zwalniają i usuwają odwołania do bufora sterty każdego wpisu (wpis->sesja). Przed poprawką dostępy te były serializowane jedynie przez mutex kontekstu poszczególnych gniazd ctx->lock (przypisany do poszczególnych gniazd w funkcji ctx_set_lock()), co nie zapewnia wzajemnego wykluczania różnych gniazd mających kontakt ze współdzieloną pamięcią podręczną.

Ponieważ wartość domyślna CONFIG_NET_SOCKETS_TLS_MAX_CLIENT_SESSION_COUNT wynosi 1, dowolne dwa współbieżne gniazda klienckie rywalizują o to samo gniazdo. Wątek w tls_session_get() czytający wpis->sesję w mbedtls_ssl_session_load() może działać równolegle z innym wątkiem w tls_session_save(), który wybiera ten sam wpis do ponownego użycia i wykonuje mbedtls_free(entry->session) przed ponownym przydzieleniem — odczyt po zwolnieniu i podwójne zwolnienie, gdy dwa zapisy powodują wykluczenie tego samego wpisu. Obydwa uszkadzają stertę mbedTLS. Dostęp do pamięci podręcznej odbywa się na zwykłych ścieżkach klienta: w czasie połączenia za pośrednictwem tls_session_store()/tls_session_restore() i (na stronie głównej) za każdym razem, gdy otrzyma bilet sesji TLS 1.3 podczas recv()/poll() za pośrednictwem tls_session_store_current().

Eksploatacja wymaga aplikacji, która włącza buforowanie sesji klienta na gniazdo (opcja gniazda TLS_SESSION_CACHE, domyślnie wyłączona) i uruchamia współbieżne połączenia klientów TLS w wielu wątkach; na moment otwarcia okna mają wpływ zdalne urządzenia równorzędne, więc złośliwy lub przejęty serwer może zwiększyć częstotliwość biletów sesji, aby je poszerzyć. Efektem, który można wiarygodnie wykazać, jest uszkodzenie pamięci prowadzące do awarii lub uszkodzenia sterty (odmowa usługi). Poprawka dodaje dedykowany muteks session_cache_lock pobierany przez każdą metodę dostępu Client_cache, serializując wszystkie odczyty i zwolnienia oraz zamykając wyścig.

>_ Słabości (CWE)

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