CVE-2026-75083
Açıklama
NXP KW41Z IEEE 802.15.4 sürücüsünün `drivers/ieee802154/ieee802154_kw41z.c` dosyasındaki `kw41z_rx()` alım yolu, yük boyutunu `uint8_t` türünde `pkt_len = len - KW41Z_FCS_LENGTH` şeklinde hesaplamaktaydı; burada `len`, radyo tarafından bildirilen çerçeve uzunluğudur. Kesme işleyicisi `kw41z_isr()`, bu uzunluğu ZLL IRQSTS kaydının `RX_FRAME_LENGTH` alanından (havadan alınan çerçevenin PHY başlık uzunluk baytının bir kopyası) almakta ve yalnızca sıfır değerini reddetmekteydi. Bu nedenle, bildirilen bir uzunluğun bir olması durumunda `pkt_len == 255` şeklinde bir alt taşma (underflow) meydana geliyordu. Paket, Ethernet olmayan bir L2 üzerinde `NET_AF_UNSPEC` ile tahsis edildiği için `net_pkt_rx_alloc_with_buffer()` isteği arayüz MTU değeriyle sınırlandırmaz; varsayılan sabit boyutlu tampon havuzuyla (`CONFIG_NET_BUF_FIXED_DATA_SIZE`, `CONFIG_NET_BUF_DATA_SIZE=128`) tahsis işlemi iki fragman zinciri olarak başarıyla gerçekleşirdi. Sonraki kayıt-tampon kopyalama döngüleri yalnızca ilk fragmana yazdığından, 128 baytlık bir `net_buf` veri bloğuna 255 bayt yazılmış, böylece bitişik ağ tampon havuzu belleğine 127 bayta kadar taşma meydana gelmiş ve radyonun `PKT_BUFFER_RX` kayıt dizisinin sonunun ötesinden 128 bayta kadar okuma yapılmıştır. Uzunluk alanı, 802.15.4 radyo menzilindeki herhangi bir cihaz tarafından iletilen kimliği doğrulanmamış bir çerçeveden kaynaklanır ve donanım tarafından çerçeve filtreleme tamamlanmadan önce PHY-başlık zamanında yakalanır; işleyici ise bunu kesme durumunu temizledikten sonra örnekler, dolayısıyla uzunluk baytı bir olan çerçevelerle saldırı gerçekleştiren bir kişi alt taşmayı tetikleyebilir. Bunun etkisi, kesme bağlamından paylaşımlı alım tampon havuzunda bellek bozulmasıdır; bu durum büyük olasılıkla bir çökmeye veya diğer paketlerin verilerinin bozulmasına yol açar. Taşan baytlar, saldırgan tarafından oluşturulan veriler yerine radyo kayıt içerikleri olduğundan, bütünlük üzerindeki etki sınırlıdır. Düzeltme, `KW41Z_FCS_LENGTH` değerinin altındaki tüm uzunlukları reddeder ve ek olarak kopyalama döngülerinden önce ilk fragmanın `net_buf_tailroom()` değerini doğrular; bu işlem aynı zamanda boyut hesaplamasının `CONFIG_NET_L2_OPENTHREAD` varyantını da kapsar.
Nasıl düzeltilir
- zephyrproject zephyr4.5.0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| zephyrproject zephyr | 1.8.0 ≤ v < 4.5.0 | 4.5.0 |
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.
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.