CVE-2026-14368
Açıklama
LwM2M JSON içerik biçimlendiricisinin subsys/net/lib/lwm2m/lwm2m_rw_json.c dosyasındaki get_string() fonksiyonu, ayrıştırılmış bir JSON dizesini çağırıcı tarafından sağlanan bir arabelleğe kopyalar ve sonuna NUL karakteri ekler. Kullanılan uzunluk koruması olan if (string_length > buflen), uzunluğu tam olarak buflen olan bir dizeyi kabul eder. memcpy() tüm arabelleği doldurduktan sonra, buf[string_length] = '\0' işlemi arabelleğin sonunun bir bayt ötesine yazım yapar (CWE-787). Dize değeri ve uzunluğu, bir LwM2M WRITE işlemi sırasında gelen CoAP yükünden doğrudan alınır: do_write_op_json() fonksiyonu coap_packet_get_payload() üzerinden elde edilen yükü ayrıştırır ve LWM2M_RES_TYPE_STRING kaynağı için lwm2m_write_handler() (subsys/net/lib/lwm2m/lwm2m_message_handling.c içindeki engine_get_string()) aracılığıyla get_string() çağrılır. Hedef buf/buflen ya kaynak örneğinin sabit veri arabelleğidir (res_inst->data_ptr/max_data_len) ya da motor doğrulama arabelleğidir (msg->ctx->validate_buf). Bu nedenle, bir LwM2M sunucusu (istemcinin DTLS eşi), hedef arabellek boyutuna eşit uzunlukta bir değere sahip bir dize kaynağı yazabilir ve tek baytlık bir taşmaya zorlayabilir. Taşma, kaynak veya doğrulama arabelleğinin hemen ardından sabit 0x00 baytının sınır dışı tek bir yazımıdır ve bellekteki bitişik baytı bozar. Bu durum bir bilgi sızıntısı değildir ve yazılan değer sabit olduğundan doğrudan bir kod çalıştırma primitifi değildir; ancak bitişik durumu (bitişik bir kaynak değerini, bir uzunluk/bayrak alanını veya bir struct alanını) bozarak veri bozulmasına veya çökmeye neden olabilir. Yazma işleminin tetiklenmesi deterministiktir; ortaya çıkan etki bellek düzenine bağlıdır. Düzeltme, koruma ifadesini string_length >= buflen şeklinde değiştirerek tam uzunluktaki durumu reddeder ve JSON biçimlendiricisini, halihazırda doğru sınır kontrolünü kullanan diğer içerik biçimlendiricileriyle (lwm2m_rw_plain_text.c, lwm2m_rw_oma_tlv.c, lwm2m_rw_senml_json.c, lwm2m_rw_cbor.c, lwm2m_rw_senml_cbor.c) uyumlu hale getirir.
Nasıl düzeltilir
- zephyrproject zephyr4.4.2 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 3.2.0 ≤ v < 4.4.2 | 4.4.2 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.