CVE-2026-18748

Aşağı

Təsvir

Bluetooth Classic A2DP hostu, bir baytlıq len sahəsi və sabit 8 baytlıq codec_ie[] massivindən ibarət olan struct bt_a2dp_codec_ie daxilində kodek İnformasiya Elementini (IE) saxlayır. AVDTP həmrası 8 baytdan uzun kodek IE göndərdikdə, subsys/bluetooth/host/classic/a2dp.c faylındakı a2dp_process_config_ind() funksiyası yalnız ilk 8 baytı kopyalayır, lakin hücumkeş tərəfindən seçilmiş tam uzunluğu len dəyişəninə təyin edir və daha sonra bu ziddiyyətli strukturu stream->codec_config vasitəsilə tətbiqin struct bt_a2dp_stream strukturunda saxlayır. bt_a2dp_get_config_cb() və bt_a2dp_set_config_cb() funksiyaları da eyni şəkildə kopyalananı kəsib çıxarmaqla, lakin uzunluğu saxlamaq modelinə malik idi. Sonrakı bütün istifadəçilər len dəyərinə etibar edir. Xüsusilə, gələn AVDTP GET_CONFIGURATION üçün cavabdeh olan a2dp_get_config_ind() funksiyası net_buf_add_mem(rsp_buf, &ep->stream->codec_config.codec_ie[0], ep->stream->codec_config.len) əmrini icra edir. Beləliklə, əvvəlcə həddindən artıq böyük kodek IE daşıyan SET_CONFIGURATION göndərən və sonra konfiqurasiyanı geri tələb edən cütlənmiş BR/EDR həmrası stekin 8 baytlıq massivin sonundan təxminən 245 bayta qədər oxumağa və onları cavabda ötürməyə səbəb olur. codec_config, struct bt_a2dp_stream strukturunun son üzvüdür, buna görə də oxuma prosesi tətbiqin stream obyekti ilə bitişik yaddaşa keçir. Eyni ziddiyyət config_req(), reconfig_req() və get_config_rsp() tətbiq callback-lərinə də ötürülür və burada len baytlarının standart memcpy() əməliyyatı növbəti sərhədləri aşan oxumaya (out-of-bounds read) səbəb olur. Həmin məlumat sızmasının baş verməsi üçün CONFIG_BT_CLASSIC ilə birlikdə CONFIG_BT_A2DP, cütləşməni tamamlamış AVDTP həmrası (AVDTP L2CAP kanalı BT_SECURITY_L2 tələb edir) və BT_A2DP_EP_INIT() vasitəsilə qeydiyyatdan keçmiş SBC olmayan kodek üçün lokal son nöqtə (BT_A2DP_MPEG1/BT_A2DP_MPEG2/BT_A2DP_ATRAC/BT_A2DP_VENDOR) lazımdır, çünki SBC budağı IE uzunluğunu artıq 4 baytla məhdudlaşdırır. bt_a2dp_get_config_cb() cavab yolu belə bir məhdudiyyətə malik deyil və yanlış uzunluğu istənilən tətbiqə ötürür. Sərhədləri aşan yazma (out-of-bounds write) mövcud deyil: net_buf tailroom yoxlaması təyinat yerini məhdudlaşdırır, buna görə də təsir yalnız bitişik RAM-ın məhdud bir bölgəsinin həmraya sızdırılması ilə məhdudlaşır. Düzəliş, sabit BT_A2DP_MAX_IE_LENGTH dəyərini konfiqurasiya edilə bilən CONFIG_BT_A2DP_CODEC_MAX_IE_LEN (defolt 8, diapazon 4–253) ilə əvəz edir, codec_ie[] ölçüsünü buna uyğun təyin edir və səssiz şəkildə kəsmək əvəzinə onu aşan hər hansı qəbul edilmiş IE-ni rədd edir, beləliklə len artıq etibarlı baytların sayını aşmayacaq.

CiddilikAşağı
CVSS3.5
İstismar ehtimalı—
MəhsulZephyr
Dərc21 okt 2026
İlk görülmə21 okt 2026

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
zephyrproject zephyr4.3.0 ≤ v ≤ 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.

Intelligence 360 paketində

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.

CVE-2026-18748 · Zephyr · Dark Radar