CVE Catalog

CVE-2026-15892

MediumCVSS 5.3
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.28%

20th percentile - higher than 20% of all known CVEs

Summary

In CVE-2026-15892, the mcumgr settings-management group handlers settings_mgmt_read(), settings_mgmt_write(), and settings_mgmt_delete() allocate a key_name buffer (and a data buffer for read) via k_malloc() when CONFIG_MCUMGR_GRP_SETTINGS_BUFFER_TYPE_HEAP is enabled. When CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK is also enabled and the application access hook rejects a request by returning MGMT_CB_ERROR_RC, the handler executes return ret_rc directly, bypassing the end: label and k_free(), leaking the heap allocation on every rejected request.

Risk Assessment

An attacker can send settings read/write/delete commands over the unauthenticated SMP transport (Bluetooth LE, UART, or UDP) that the hook rejects, monotonically exhausting the kernel heap until k_malloc() fails. This causes a denial of service for mcumgr and any other heap consumer on the device; the impact is availability-only, with no memory corruption or information disclosure.

Recommendation

Update to a version containing the fix that ensures the allocation is freed before returning the access hook error. If updating is not possible, consider disabling CONFIG_MCUMGR_GRP_SETTINGS_ACCESS_HOOK or changing the hook to not return MGMT_CB_ERROR_RC, and restrict access to the SMP transport.

Related vulnerabilities

Original NVD description (English source)

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).

Vulnerability data from NVD (NIST) · CISA KEV · EPSS