CRITICAL🇬🇧 English

CVE-2020-12883

Buffer over-read w bibliotece CoAP Arm Mbed OS — wyciek pamięci i błąd dostępu

CVSS 9.1v3.1pub. 2020-06-18upd. 2024-11-21

W bibliotece CoAP systemu Arm Mbed OS 5.15.3 odkryto błędy typu buffer over-read (CWE-125), umożliwiające odczyt danych spoza przeznaczonego obszaru pamięci. Podatność jest krytyczna, ponieważ może być wykorzystana zdalnie bez uwierzytelnienia i prowadzi do ujawnienia danych z pamięci lub naruszenia stabilności systemu.

Pokaż oryginał (EN)

Buffer over-reads were discovered in the CoAP library in Arm Mbed OS 5.15.3. The CoAP parser is responsible for parsing received CoAP packets. The function sn_coap_parser_options_parse() parses CoAP input linearly using a while loop. Once an option is parsed in a loop, the current point (*packet_data_pptr) is increased correspondingly. The pointer is restricted by the size of the received buffer, as well as by the option delta and option length bytes. The actual input packet length is not verified against the number of bytes read when processing the option extended delta and the option extended length. Moreover, the calculation of the message_left variable, in the case of non-extended option deltas, is incorrect and indicates more data left for processing than provided in the function input. All of these lead to heap-based or stack-based memory location read access that is outside of the intended boundary of the buffer. Depending on the platform-specific memory management mechanisms, it can lead to processing of unintended inputs or system memory access violation errors.

🤖 Analiza AI
Jak działa

Funkcja sn_coap_parser_options_parse() przetwarza przychodzące pakiety CoAP w pętli while, przesuwając wskaźnik bieżącej pozycji w buforze po każdej sparsowanej opcji. Rzeczywista długość pakietu wejściowego nie jest weryfikowana względem liczby faktycznie odczytanych bajtów podczas przetwarzania rozszerzonych pól delta i długości opcji. Dodatkowo, w przypadku nierozszerzonych wartości delta opcji, obliczanie zmiennej message_left jest błędne i wskazuje większą ilość pozostałych danych niż faktycznie dostarczona. W konsekwencji dochodzi do odczytu pamięci sterty (heap) lub stosu (stack) poza zamierzonym obszarem bufora.

Skutki

Atakujący może uzyskać nieautoryzowany dostęp do fragmentów pamięci systemowej (ujawnienie wrażliwych danych) lub wywołać błąd naruszenia dostępu do pamięci skutkujący odmową usługi (DoS). Efekt zależy od mechanizmów zarządzania pamięcią konkretnej platformy.

Mitygacja

Należy zastosować patche dostępne u producenta zgodnie z referencjami — poprawka dostępna w repozytorium mbed-coap (pull request #116 na GitHub ARMmbed/mbed-coap). Zaleca się aktualizację biblioteki mbed-coap do wersji zawierającej łatkę oraz śledzenie poprawek w repozytorium ARMmbed/mbed-os (issues #12925, #12926, #12927).

Kogo dotyczy

Arm Mbed OS 5.15.3 z biblioteką mbed-coap

Uwagi

Podatność obejmuje trzy odrębne warianty błędów zgłoszone jako osobne issues w repozytorium Arm Mbed OS (#12925, #12926, #12927). Urządzenia IoT korzystające z protokołu CoAP i oparte na Arm Mbed OS 5.15.3 powinny być priorytetowo zaktualizowane ze względu na sieciowy wektor ataku bez wymogu uwierzytelnienia (AV:N/PR:N/UI:N).

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:H
  • Arm Mbed Os

    OS
    Arm
    5.15.3
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

CVE-2024-48984CRITICAL9.8PL ✓ten sam produkt

Buffer overflow w parserze HCI raportów BLE w Arm Mbed OS 6.16.0

CVE-2020-12884CRITICAL9.1PL ✓ten sam produkt

Buffer over-read w parserze CoAP biblioteki Arm Mbed OS

CVE-2020-12886CRITICAL9.1PL ✓ten sam produkt

Buffer over-read w bibliotece CoAP systemu Arm Mbed OS

CVE-2024-22905HIGH7.0ten sam produkt

Buffer Overflow vulnerability in ARM mbed-os v.6.17.0 allows a remote attacker to execute arbitrary code via a...

CVE-2020-12885HIGH7.5ten sam produkt

An infinite loop was discovered in the CoAP library in Arm Mbed OS 5.15.3. The CoAP parser is responsible for ...