CVE-2026-19184

Yüksək

Təsvir

NXP GAU ADC drayveri (drivers/adc/adc_mcux_gau_adc.c) çağırıcı tərəfindən təmin edilən və baytlarla ifadə olunan sequence->buffer_size dəyərini aktiv kanalların sayı ilə (hansı ki, nümunələrin sayıdır) yoxlayırdı. Daha sonra həmin bayt sayını birbaşa data->results_length-də saxlayır və mcux_gau_adc_read_samples() funksiyasında mövcud olan uint16_t slotlarının sayı kimi istifadə edirdi. Hər bir çevirmə nəticəsi sizeof(uint16_t) bayt tutduğu üçün, "kifayət qədər böyük" kimi qəbul edilən bufer onun ölçüsünün iki qatına qədər baytla doldurula bilərdi, beləliklə, buferin orta nöqtəsindən sonrakı hər bir nümunə sərhədlərdən kənara yazılırdı. adc_read() və adc_read_async() Zephyr sistem çağırışlarıdır. drivers/adc/adc_handlers.c faylındakı syscall verifikatoru yalnız çağırıcının buffer_size qədər yazıla bilən bayta sahib olduğunu (K_SYSCALL_MEMORY_WRITE) təsdiqləyir; bu ölçünün sorğu edilən kanallar və extra_samplings üçün kifayət edib-etmədiyinə qərar vermək tamamilə drayverə həvalə edilir. CONFIG_USERSPACE=y konfiqurasiyası ilə yığılmış versiyalarda, ADC cihaz obyektinə giriş hüququ verilmiş istifadəçi rejimi (user-mode) axını (thread) qəsdən yarıölçülü bufer göndərə bilər və bununla da çağırıcının MPU məhdudiyyətlərindən kənarda, supervayzer rejimində işləyən drayverin iş növbəsi idarəedicisinin (work-queue handler) ADC çevirmə nəticələrini həmin buferin sonundan kənara, çağırıcının seçdiyi ünvan və uzunluqda yazmasına səbəb ola bilər. Sərhəddən kənara yazılma prosesi sorğu edilən ardıcıllıqla məhdudlaşır: sequence->options->extra_samplings təyin edildikdə, nümunə götürmə dövrü (loop) bufer göstəricisini hər bir nümunə üzrə irəli sürüşdürür, buna görə də ümumi aşım təmin edilən buferin tam ölçüsünə çata bilər (böyük extra_samplings üçün kilobaytlardır). Yazılan sözlər 16-bitlik ADC çevirmə nəticələridir, ona görə də məzmun yalnız qismən hücum edən şəxs tərəfindən təsir altına alınır (seçilmiş analoq giriş, qazanclılıq və rezolyusiya vasitəsilə), lakin təyinat yeri və uzunluq tamamilə nəzarət altındadır — bu isə nüvə yaddaşının korlanması, sistemin çökməsi və ya istifadəçi rejimindən nüvəyə imtiyazların yüksəldilməsi üçün kifayətdir. CONFIG_USERSPACE olmadan yığılan versiyalar və ya GAU ADC düyünü aktiv edilmiş NXP RW61x-dən fərqli SoC-larda imtiyaz sərhədi risk altında deyil; orada eyni qüsur yalnız tətbiqin özü kiçik ölçülü bufer ötürdükdə səssiz daşmaya (overflow) səbəb olur. Həll yolu ad-hoc yoxlamanı ortaq adc_sequence_validate_buffer() köməkçi funksiyası ilə əvəzləyir (num_channels * sizeof(uint16_t) əsasında yoxlama aparılır), results_length-də buffer_size / sizeof(uint16_t) dəyərini saxlayır və dövr sərhədini post-decrement ilə düzəldir ki, yalnız mövcud slotların sayı yazılsın.

CiddilikYüksək
CVSS8.4
İstismar ehtimalı—
MəhsulZephyr
Dərc5 okt 2026
İlk görülmə5 okt 2026

Necə düzəltmək olar

Yeniləyin
  • zephyrproject zephyr4.5.0 və ya daha yeni versiya

Təsirlənən məhsullar

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

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.