Katalog CVE

CVE-2026-15892

ŚrednieCVSS 5.3
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.28%

Percentyl 20 - wyżej niż 20% wszystkich znanych CVE

Streszczenie

W podatności CVE-2026-15892 funkcje obsługi grupy settings-management w mcumgr (settings_mgmt_read(), settings_mgmt_write(), settings_mgmt_delete()) alokują bufor key_name (a dla odczytu także bufor danych) przez k_malloc(), gdy włączone jest CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP. Gdy jednocześnie włączony jest CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK, a hook dostępu odrzuca żądanie zwracając MGMT_CB_ERROR_RC, handler wykonuje return ret_rc bezpośrednio, pomijając etykietę end: i k_free(), co powoduje wyciek alokacji przy każdym odrzuconym żądaniu.

Ocena ryzyka

Atakujący może wysyłać przez nieuwierzytelniony transport SMP (Bluetooth LE, UART lub UDP) polecenia settings read/write/delete, które hook odrzuca, powodując monotoniczne wyczerpywanie sterty jądra aż do niepowodzenia k_malloc(). Prowadzi to do odmowy usługi (DoS) dla mcumgr i innych konsumentów sterty na urządzeniu; wpływ dotyczy wyłącznie dostępności, bez korupcji pamięci czy ujawnienia informacji.

Rekomendacja

Zaktualizuj system do wersji zawierającej poprawkę, która zapewnia zwolnienie alokacji przed zwrotem błędu z hooka dostępu. Jeśli aktualizacja nie jest możliwa, rozważ wyłączenie CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK lub zmianę hooka tak, aby nie zwracał MGMT_CB_ERROR_RC, a także ograniczenie dostępu do transportu SMP.

Powiązane podatności

Oryginalny opis (angielski, źródło NVD)

The mcumgr SMP settings-management group handlers settings_mgmt_read(), settings_mgmt_write(), and settings_mgmt_delete() in subsys/mgmt/mcumgr/grp/settings_mgmt/src/settings_mgmt.c allocate a key_name buffer (and, for read, a data buffer) via k_malloc() when CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP is enabled, relying on the end: label to k_free() them. When CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK is also enabled and the application access hook rejects a request by returning status MGMT_CB_ERROR_RC, the handler executed return ret_rc; directly, bypassing end: and leaking the heap allocation on every rejected request. The settings handlers are reachable over the unauthenticated SMP transport (Bluetooth LE, UART, or UDP, depending on product configuration). The access hook is the mechanism applications use to deny unauthorized settings access, and MGMT_CB_ERROR_RC is a common rejection style, so an attacker who can send settings read/write/delete commands that the hook rejects triggers a heap leak on each attempt. Because the leaked memory is never reclaimed until reboot, a sustained stream of rejected requests monotonically exhausts the kernel heap until k_malloc() fails, denying mcumgr service and impacting any other heap consumer on the device — a denial of service. The impact is availability-only; there is no memory corruption or information disclosure. Only configurations that select the heap buffer type, enable the access hook, and register a hook that returns MGMT_CB_ERROR_RC are affected (the default stack buffer type cannot leak).

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS