CVE-2026-31649
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net: stmmac: chain modundaki tamsayı alt taşması (integer underflow) düzeltildi jumbo_frm() chain-mode uygulaması koşulsuz olarak şunu hesaplar: len = nopaged_len - bmax; Burada nopaged_len = skb_headlen(skb) (yalnızca doğrusal baytlar) ve bmax ise BUF_SIZE_8KiB veya BUF_SIZE_2KiB değeridir. Ancak, çağıran stmmac_xmit() fonksiyonu, jumbo_frm()'yi çağırıp çağırmayacağına skb->len (sayfa parçaları dahil toplam uzunluk) değerine göre karar verir: is_jumbo = stmmac_is_jumbo_frm(priv, skb->len, enh_desc); Bir paket küçük bir doğrusal kısma (nopaged_len <= bmax) ancak sayfa parçaları nedeniyle büyük bir toplam uzunluğa (skb->len > bmax) sahip olduğunda, çıkarma işlemi işaretsiz bir tamsayı olarak döner ve çok büyük bir len değeri (~0xFFFFxxxx) üretir. Bu durum, while (len != 0) döngüsünün yüz binlerce kez çalışmasına neden olur ve skb->data + bmax * i işaretçilerini skb tamponunun çok ötesine taşıyarak dma_map_single()'a iletir. IOMMU olmayan SoC'lerde (stmmac için tipik dağıtım), bu durum rastgele çekirdek belleğinin DMA motoruna eşlenmesine yol açarak bir çekirdek bellek ifşasına (kernel memory disclosure) ve donanım kaynaklı potansiyel bellek bozulmasına neden olur. Bu sorun, min(nopaged_len, bmax) ile sınırlandırılmış bir buf_len yerel değişkeni eklenerek düzeltilmiştir. Artık len = nopaged_len - buf_len hesaplaması her zaman güvenlidir: Doğrusal kısım tek bir tanımlayıcıya sığdığında sonuç sıfırdır, bu da while (len != 0) döngüsünün doğal olarak atlanmasını sağlar ve ardından stmmac_xmit()'deki parça döngüsü sayfa parçalarını işler.
Nasıl düzeltilir
- linux linux_kernel5.10.253, 5.15.203, 6.1.169, 6.6.135, 6.12.82, 6.18.23, 6.19.13 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 3.2.1 ≤ v < 5.10.253, 5.11 ≤ v < 5.15.203, 5.16 ≤ v < 6.1.169, 6.2 ≤ v < 6.6.135, 6.7 ≤ v < 6.12.82, 6.13 ≤ v < 6.18.23, 6.19 ≤ v < 6.19.13, 3.2, 7.0 | 5.10.253, 5.15.203, 6.1.169, 6.6.135, 6.12.82, 6.18.23, 6.19.13 |
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.