CVE-2026-76788
Təsvir
subsys/mgmt/osdp/src/osdp_cp.c faylındakı OSDP Control Panel cavab analizatoru cp_decode_response(), Periferik Cihazdan gələn cavabları stekdə ayrılmış struct osdp_event strukturuna dekodlaşdırır. REPLY_KEYPPAD və REPLY_RAW cavab növləri üçün yükün uzunluğu qəbul edilmiş freymdən götürülür və həyata keçirilən yeganə yoxlama elan edilmiş uzunluğun freymdə mövcud olan yük baytlarının sayı ilə daxili uyğunluğudur. Hücum edən həm uzunluq sahəsini, həm də freym uzunluğunu idarə etdiyi üçün bu yoxlama heç bir məhdudiyyət qoymur və növbəti memcpy() funksiyası struct osdp_event_keypress / struct osdp_event_cardread-in sabit 64 baytlıq data massivlərinə (OSDP_EVENT_MAX_DATALEN) yazma əməliyyatı yerinə yetirir. Eyni switch blokundakı paralel REPLY_FMT idarəedicisi artıq çatışmayan > OSDP_EVENT_MAX_DATALEN məhdudiyyətini tətbiq etmişdi. Bu qüsura, OSDP RS-485 kanalından baytları oxuyan və onları cavab ID-sinə görə yönləndirməzdən əvvəl osdp_phy_check_packet() və osdp_phy_decode_packet() funksiyalarından keçirən cp_process_reply() vasitəsilə çatılır. Bunun aktivləşdirilməsi üçün CONFIG_OSDP ilə birlikdə CONFIG_OSDP_MODE_CP və qeydiyyatdan keçmiş tətbiq hadisə geri çağırışı (normal Control Panel inteqrasiyası), həmçinin düzgün SOM, valid CRC-16 və uyğun 2-bitlik ardıcıllıq nömrəsi daşıyan freym tələb olunur — bunların hamısı şin üzərindəki hər kəs tərəfindən hesablana və ya müşahidə edilə bilər. Cavab ID-sini gözlənilən əmr ilə bağlayan heç bir yoxlama yoxdur, buna görə də həddindən artıq böyük REPLY_KEYPPAD və ya REPLY_RAW rutin CMD_POLL-a cavab kimi qəbul edilir. Zərərli və ya kompromisə uğramış kart oxuyucusu və ya RS-485 naqillərinə çıxışı olan hər hansı şəxs belə bir freym göndərə bilər; CONFIG_OSDP_SC_ENABLED yalnız təhlükəsiz kanal aktiv olduqda kömək edir və yanlış MAC daşıyan tək bir autentifikasiya olunmamış freym sc_deactivate() funksiyasının işə düşməsinə səbəb olur, bundan sonra açıq mətn cavabları yenidən qəbul edilir. Default CONFIG_OSDP_UART_BUFFER_LENGTH 256 olduğu halda, tipik Cortex-M və RISC-V freym strukturlarında (Zephyr standart olaraq stack canary-ni aktivləşdirmir), hücum edən tərəfindən tamamilə seçilmiş təxminən 180 bayt məlumat stekdə ayrılmış hadisə obyektinin sonundan kənara, saxlanılan registrlərin və geri dönüş ünvanının üzərinə yazıla bilər. Təsir giriş-çıxış kontrol panelinin tam çökməsindən tutmuş, OSDP qəbul axını kontekstində potensial idarəetmə axınının ələ keçirilməsinə qədər dəyişir. Düzəliş hər iki idarəediciyə OSDP_EVENT_MAX_DATALEN məhdudiyyətini əlavə edərək, hər bir memcpy() əməliyyatını onun təyinat yerinin ölçüsü ilə məhdudlaşdırır.
Necə düzəltmək olar
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 3.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.
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.