Katalog CVE

CVE-2026-87044

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.21%

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

Streszczenie

W sterowniku shim kryptografii Mbed TLS (drivers/crypto/crypto_mbedtls_shim.c) ścieżki błędów w funkcjach mbedtls_cbc() i mbedtls_aead() po udanym psa_cipher_encrypt_setup()/psa_aead_decrypt_setup() nie wywołują psa_cipher_abort()/psa_aead_abort(). Powoduje to trwały wyciek kontekstu mbedtls_aes_context (ok. 288 bajtów) ze stałego sterty Mbed TLS (domyślnie 512 bajtów) przy każdej nieudanej operacji. Atakujący bez uwierzytelnienia może wyczerpać stertę, wysyłając ramki 802.15.4 z błędnym MIC lub przez kanał OSDP, co trwale blokuje kolejne operacje kryptograficzne do restartu urządzenia.

Ocena ryzyka

Wyczerpanie sterty Mbed TLS powoduje trwałą awarię wszystkich operacji kryptograficznych w obrazie, w tym bezpieczeństwa warstwy łącza i TLS/DTLS, co prowadzi do odmowy usługi (DoS) do momentu restartu urządzenia. Brak korupcji pamięci i ujawnienia informacji — wpływ ogranicza się do dostępności.

Rekomendacja

Zaktualizuj system do wersji zawierającej poprawkę, która kieruje wszystkie błędy po setupie w mbedtls_cbc() i mbedtls_aead() przez wspólną etykietę wywołującą odpowiedni abort PSA. Do czasu wdrożenia poprawki ogranicz ekspozycję radiową 802.15.4 i kanałów OSDP oraz monitoruj restarty urządzeń.

Inne podatności w Mbed TLS

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

The Mbed TLS crypto shim driver in drivers/crypto/crypto_mbedtls_shim.c drives PSA multipart cipher and AEAD operations. In mbedtls_cbc() and mbedtls_aead(), every error path after a successful psa_cipher_encrypt_setup() / psa_aead_decrypt_setup() returned directly without calling psa_cipher_abort() / psa_aead_abort(). Because the abort is the only thing that reaches mbedtls_cipher_free(), each failed operation permanently leaked the heap-allocated mbedtls_aes_context (roughly 288 bytes) that setup had allocated from Mbed TLS's fixed static heap (_mbedtls_heap[CONFIG_MBEDTLS_HEAP_SIZE], default 512 bytes). With CONFIG_PSA_CRYPTO_PROVIDER_TFM the leaked object is instead a finite secure-partition multipart-operation slot. The failure is chosen by an unauthenticated attacker. With CONFIG_NET_L2_IEEE802154_SECURITY backed by this driver, ieee802154_decrypt_auth() in subsys/net/l2/ieee802154/ieee802154_security.c invokes cipher_ccm_op() on every received secured frame, with no authentication ahead of the MIC check. A device in radio range can transmit a stream of syntactically valid 802.15.4 frames carrying a bogus MIC; each one makes psa_aead_verify() fail and leaks a block. The CBC path is reachable the same way through the OSDP secure channel, where CONFIG_OSDP_SC_ENABLED selects this shim and osdp_encrypt() / osdp_decrypt() leave out_buf_max unset, so every operation fails inside psa_cipher_update(). Exhausting the Mbed TLS heap — which the default configuration reaches after a couple of failed operations, and any realistic configuration reaches in well under a second of frames — makes all subsequent mbedtls_calloc() calls fail. Every later cryptographic operation in the image then fails permanently, including link-layer security and any TLS/DTLS sharing the same heap, until the device is rebooted. There is no memory corruption or information disclosure: frames with an invalid MIC are still rejected, so the impact is limited to availability. The fix routes all post-setup failures in mbedtls_cbc() and mbedtls_aead() through a common error: label that calls the matching PSA abort before returning. Setup failures need no change, since the PSA core aborts the operation itself when setup fails.

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