CVE-2026-10653

Orta

Açıklama

Zephyr net_buf kitaplığı (lib/net_buf/buf.c), her değişken/yığın veri tahsisinin başlangıcında hem başlık başına düşen buf->ref referans sayacını hem de veri bloğu başına düşen ref_count referans sayacını düz, atomik olmayan C operatörleri (buf->ref++, if (--buf->ref > 0), if (--(*ref_count))) ile yönetiyordu. API, kendi kendini senkronize eden bir yapı olarak belgelenmiştir: çağıranlar tek bir tamponu iş parçacıkları arasında paylaşabilir (örneğin k_fifo aracılığıyla) ve her tutucu, herhangi bir çevreleyici kilit olmadan bağımsız olarak net_buf_unref() fonksiyonunu çağırabilir. Gerçek eşzamanlılık durumunda (SMP veya başka bir bağlam aynı tampon için unref işlemi yaparken, atomik olmayan yükleme ve saklama işlemleri arasında gerçekleşen tek çekirdekli ön alma), iki tutucu da aynı önceki referans değerini gözlemleyebilir ve her ikisi de son referans oldukları sonucuna varabilir. Yığın/değişken veri havuzları için (zbus mesaj aboneleri, CONFIG_NET_BUF_FIXED_DATA_SIZE=n olduğunda IP yığını RX/TX tamponları, capture, wireguard, ISO-TP ve usbip tarafından kullanılan mem_pool_data_unref/heap_data_unref), bu durum aynı blok üzerinde çift k_heap_free()/k_free() işlemine yol açarak yığın meta veri bozulmasına ve yığın sertleştirme zehir kalıbı (poison pattern) üzerinde serbest bırakıldıktan sonra kullanıma (use-after-free) neden olur. Başlık başına düşen referans sayısı için ise, herhangi bir havuz türünde (Bluetooth ve ağ iletişimi tarafından kullanılan sabit veri havuzları dahil) tampon, boş LIFO havuzuna iki kez iade edilir; bu da boş liste yapısını bozarak daha sonraki bir tahsisin aynı tamponu iki farklı sahibe vermesine yol açar. Düzeltme, her iki referans sayacını da atomic_inc/atomic_dec işlemlerine dönüştürür (buf->ref'i atomic_t boyutunda bir union içine yerleştirerek ve veri bloğu referans sayacını uint8_t'den atomic_t'ye değiştirerek). Etki, gerçek eşzamanlılığa ve tek bir tamponu birden fazla bağımsız unref yapan birim arasında paylaşan uygulama mimarisine bağlıdır; tetikleyici paket içeriğinden ziyade bir referans sayısı/zamanlama yarışı (race condition) olduğu için, harici bir saldırganın yarış penceresi üzerinde en fazla zayıf dolaylı etkisi olabilir. v4.4.0 sürümüne kadar olan tüm Zephyr sürümlerini etkiler. Bu düzeltme v3.7 dalına (LTS) geri taşınmamaktadır (backport). Geri taşıma denenmiş ancak birleştirilmeden kapatılmıştır (#111181): v3.7 ağaç yapısı ana daldan ayrılmış olup yeni atomik kelime paketleme yöntemi ve eklediği doğrulamalar (assertions), yığının diğer yerlerindeki mevcut v3.7'ye özgü referans sayma kusurlarını donanımsal hatalara (hard fault) dönüştürmektedir; bu nedenle değişikliği sadık bir şekilde uygulamak, LTS dalına ucu açık bir dizi ek v3.7 düzeltmesi getirmek anlamına gelecektir. v3.7 etkilenmeye devam etmektedir. v3.7 üzerindeki ve tek bir net_buf'ı iş parçacıkları arasında paylaşan uygulamalar, belgelenen kendi kendini senkronize etme davranışına güvenmek yerine kendi net_buf_unref() çağrılarını serileştirmelidir. Düzeltme ana daldadır ve v4.3 dalına (#110852) ile v4.4 dalına (#110853) geri taşınmıştır.

ÖnemOrta
CVSS6.4
İstismar olasılığı—
ÜrünZephyr
Yayın30 Haz 2026
İlk görülme30 Haz 2026
Zayıflık türüCWE-415CWE-415

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
zephyrproject zephyr2.7.0 ≤ v ≤ 4.4.1—

Sürümünüzü kontrol edin

Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.

Intelligence 360 paketinde

Attack Surface Management

Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.