CVE-2026-14368
Təsvir
LwM2M JSON məzmun formatlaşdırıcısının subsys/net/lib/lwm2m/lwm2m_rw_json.c faylındakı get_string() funksiyası parse edilmiş JSON sətrini çağıran tərəfindən verilən buferə kopyalayır və onu NUL ilə sonlandırır. İstifadə olunan uzunluq yoxlaması if (string_length > buflen) şəklindədir və uzunluğu dəqiq buflen-ə bərabər olan sətri qəbul edir. memcpy() bütün buferi doldurduqdan sonra buf[string_length] = '\0' əməliyyatı buferin sonundan bir bayt kənara yazır (CWE-787). Sətrin dəyəri və uzunluğu LwM2M WRITE əməliyyatı zamanı birbaşa daxil olan CoAP yükündən götürülür: do_write_op_json() coap_packet_get_payload() funksiyasından alınan yükü parse edir, get_string() isə LWM2M_RES_TYPE_STRING tipli resurs üçün lwm2m_write_handler() (subsys/net/lib/lwm2m/lwm2m_message_handling.c faylındakı engine_get_string()) tərəfindən çağırılır. Təyinat buf/buflen ya resurs instansının sabit data buferi (res_inst->data_ptr/max_data_len), ya da mühərrikin validasiya buferi (msg->ctx->validate_buf) olur. Buna görə LwM2M serveri (klientin DTLS qarşı tərəfi) uzunluğu hədəf buferin ölçüsünə bərabər olan dəyərlə sətir resursuna yaza və bir baytlıq daşmanı təmin edə bilər. Daşma resurs və ya validasiya buferindən dərhal sonra sabit 0x00 baytının yeganə sərhəddən kənar yazılmasıdır və yaddaşda qonşu baytı korlayır. Bu, məlumat sızması deyil və yazılan dəyər sabit olduğundan birbaşa kod icrası primitivi deyil, lakin qonşu vəziyyəti (qonşu resurs dəyərini, uzunluq/bayraq sahəsini və ya struktur sahəsini) korlayaraq məlumatların korlanmasına və ya crash-ə səbəb ola bilər. Yazmanın tetiklənməsi deterministikdir; yaranan təsir yaddaşın yerləşməsindən asılıdır. Düzəliş yoxlamanı string_length >= buflen şəklinə dəyişir, dəqiq uzunluq halını rədd edir və JSON formatlaşdırıcısını artıq düzgün sərhəd yoxlamasından istifadə edən digər məzmun formatlaşdırıcıları (lwm2m_rw_plain_text.c, lwm2m_rw_oma_tlv.c, lwm2m_rw_senml_json.c, lwm2m_rw_cbor.c, lwm2m_rw_senml_cbor.c) ilə uyğunlaşdırır.
Necə düzəltmək olar
- zephyrproject zephyr4.4.2 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 3.2.0 ≤ v < 4.4.2 | 4.4.2 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.