CVE-2026-12634
Təsvir
Zephyr tənzimləmələr alt sisteminin NVS backend-i (subsys/settings/src/settings_nvs.c) saxlanılan tənzimləmə adı yazılarını sabit 74 baytlıq stek buferlərinə oxuyur və onları buf[rc] = '\0' ilə NUL-terminasiya edir, burada rc nvs_read() funksiyasının qaytardığı dəyərdir. Müqaviləsinə əsasən, nvs_read() tam saxlanılan yazı uzunluğunu (wlk_ate.len) qaytarır ki, bu da təmin edilən bufer uzunluğundan çox ola bilər — faktiki olaraq yalnız MIN(len, stored_len) bayt kopyalanır, lakin qaytarılan dəyər daha böyük ola bilər və yalnız NVS sektor ölçüsü ilə məhdudlaşdırılır. Üç sahə (settings_nvs_cache_match(), settings_nvs_load() və settings_nvs_save()) bu dəyərdən hər hansı bir məhdudiyyət olmadan birbaşa NUL indeksi kimi istifadə etmişdir, buna görə də həddindən artıq böyük saxlanılan ad yazısı hücumçunun təsir etdiyi ofsetdə stek buferinin sonundan kənara tək bir \0 baytının yazılmasına səbəb olur (CWE-787). Həddindən artıq böyük yazı, adların SETTINGS_MAX_NAME_LEN ilə məhdudlaşdırıldığı normal tənzimləmələr API-si vasitəsilə yarana bilməz. Bu, tənzimləmələr bölməsini dəstəkləyən flash yaddaşa yazıla bilən bir aktor tələb edir — flash cihazını paylaşan eyni mühitdə olan və ya etibarsız komponent, zərərli tənzimləmələr obrazı/bərpası və ya oflayn/fiziki flash girişi (paylaşılan-flash təhlükə modeli). Yanlış formalaşdırılmış yazı, boot zamanı və ya alt sistemin init prosesində settings_load() işə düşdükdə və ya settings_save() zamanı analiz edilir. Sərhədləri aşan yazı, hazırlanmış yazı uzunluğuna bərabər ofsetdə (NVS sektor ölçüsünə qədər) tək bir NUL baytıdır, buna görə də praktiki təsiri etibarlı kodun icrasından ziyadə, proqramın çökməsi, xidmətdən imtina və məhdud stek korrupsiyasıdır. Konfidensiallığa heç bir təsir yoxdur və bu yol adi tənzimləmələr interfeysi vasitəsilə şəbəkədən əlçatan deyil. Düzəliş, NUL yazma əməliyyatını yerinə yetirməzdən əvvəl nvs_read() uzunluğu bufer ölçüsündən böyük və ya ona bərabər olan hər hansı bir yazını ötürür.
Necə düzəltmək olar
- zephyrproject zephyr4.5.0 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| zephyrproject zephyr | 2.0.0 ≤ v < 4.5.0 | 4.5.0 |
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.