CVE-2026-10653

Orta

Təsvir

Zephyr net_buf kitabxanası (lib/net_buf/buf.c), hər bir dəyişkən/heap məlumat ayırmasının əvvəlində həm başlıq üzrə buf->ref, həm də məlumat bloku üzrə ref_count istinad sayğaclarını adi qeyri-atomik C operatorları ilə (buf->ref++, if (--buf->ref > 0), if (--(*ref_count))) idarə edirdi. API özünü sinxronizasiya edən kimi sənədləşdirilib: çağırıcılar bir buferi müxtəlif axınlar (threads) arasında paylaşa bilər (məsələn, k_fifo vasitəsilə) və hər bir sahibçisi heç bir kilid olmadan müstəqil şəkildə net_buf_unref() funksiyasını çağıra bilər. Həqiqi paralel işləmə zamanı (SMP və ya digər kontekst eyni buferi unref etdiyi halda, qeyri-atomik yükləmə və yaddaşa yazma arasındakı tək nüvəli preemption), iki sahibçi də eyni əvvəlki istinad dəyərini görə bilər və hər ikisi sonuncu istinad olduqlarına qərar verə bilər. Heap/dəyişkən məlumat hovuzları üçün (zbus mesaj abunəçiləri, CONFIG_NET_BUF_FIXED_DATA_SIZE=n olduqda IP stekinin RX/TX buferləri, capture, wireguard, ISO-TP və usbip tərəfindən istifadə edilən mem_pool_data_unref/heap_data_unref) bu, eyni blokun iki dəfə k_heap_free()/k_free() edilməsinə səbəb olur — bu isə heap metadata korrupsiyasına və heap-hardening poison pattern üzərində use-after-free xətasına yol açır. Başlıq üzrə istinad sayğacı üçün bufer, hər hansı hovuz növü üçün (Bluetooth və şəbəkələnmə tərəfindən istifadə edilən sabit məlumat hovuzları daxil olmaqla) boş LIFO hovuzuna iki dəfə qaytarılır, bu da boş siyahını korlayır və nəticədə sonrakı ayırma prosesi eyni buferi iki fərqli sahibçiyə təhvil verir. Düzəliş hər iki istinad sayğacını atomic_inc/atomic_dec funksiyalarına çevirir (buf->ref-i atomic_t ölçülü union daxilinə yerləşdirir və məlumat bloku istinad sayğacını uint8_t tipindən atomic_t tipinə dəyişir). Təsir həqiqi paralellik və bir buferi çoxlu müstəqil unref-edicilər arasında paylaşan tətbiq arxitekturasından asılıdır; tetikleyici paket məzmunu deyil, istinad sayğacı/vaxtlama yarışı (race condition) olduğu üçün xarici hücumçunun yarış pəncərəsi üzərində ən yaxşı halda zəif dolayı təsiri ola bilər. v4.4.0 versiyadək bütün Zephyr buraxılışlarına təsir edir. Bu düzəliş v3.7-branch (LTS) versiyasına tətbiq edilmir. Backport cəhd edildi lakin birləşdirilmədən bağlandı (#111181): v3.7 şəbəkə ağacı main budaqdan uzaqlaşıb və yeni atomik söz-paketləmə (word-packing) — əlavə etdiyi assertion-larla birlikdə — stekin digər hissələrində mövcud olan yalnız v3.7-yə xas istinad sayğacı qüsurlarını ciddi sistem xətalarına (hard faults) çevirir, buna görə də dəyişikliyin dəqiq tətbiqi LTS budağına açıq sonlu sayda əlavə v3.7-yə xas düzəlişlərin daxil edilməsi demək olardı. v3.7 versiyası təsirli qalır. Bir net_buf-ı axınlar arasında paylaşan v3.7 tətbiqləri sənədləşdirilmiş özünü sinxronizasiya edən davranışa güvənmək əvəzinə, öz net_buf_unref() çağırışlarını seriyalaşdırmalıdırlar. Düzəliş main budağındadır və v4.3-branch (#110852) və v4.4-branch (#110853) versiyalarına tətbiq edilmişdir.

CiddilikOrta
CVSS6.4
İstismar ehtimalı—
MəhsulZephyr
Dərc30 iyn 2026
İlk görülmə30 iyn 2026
Zəiflik növüCWE-415CWE-415

Necə düzəltmək olar

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
zephyrproject zephyr2.7.0 ≤ v ≤ 4.4.1—

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.