CVE-2026-98022
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net: aşırı boyutlu ring tahsislerini önlemek için tx_queue_len değeri S16_MAX ile sınırlandırıldı Çeşitli alt sistemler, herhangi bir üst sınır olmaksızın dev->tx_queue_len boyutunda ring tamponları tahsis etmektedir. Ayrıcalıksız bir kullanıcı (unshare -Urn aracılığıyla), çok büyük bir tx_queue_len belirleyerek ring tahsisleri ile genel belleği tüketebilir: - pfifo_fast: pfifo_fast_init() ve pfifo_fast_change_tx_queue_len(), her biri tx_queue_len girişine sahip 3 skb_array ring'i tahsis eder. - tun: tun_queue_resize() ve kuyruk ekleme yolu, NETDEV_CHANGE_TX_QUEUE_LEN bildiricisi üzerinde ptr_rings boyutunu tx_queue_len değerine göre yeniden boyutlandırır. - tap (macvtap/ipvtap): tap_queue_resize() ve tap_init(), aynı bildirici üzerinde ptr_rings boyutunu tx_queue_len değerine göre yeniden boyutlandırır/başlatır. netif_change_tx_queue_len(); IFLA_TXQLEN, sysfs ve SIOCSIFTXQLEN ioctl'si için tek giriş noktasıdır. Aşırı boyutlu değerin ayarlanma anında reddedilmesi için new_len değeri burada S16_MAX (32767) ile sınırlandırılmıştır. Bu işlem cihaz açık veya kapalı fark etmeksizin, dev->tx_queue_len yazılmadan önce, herhangi bir bildirici tetiklenmeden ve herhangi bir ring tahsis edilmeden önce yürürlüğe girer. "> S16_MAX" kontrolü ayrıca önceki unsigned-long kırpma testini de kapsar ve ioctl'den gelen negatif bir ifr_qlen dönüşümden sonra sınırın çok üzerine çıktığından, her iki eski hata modu da bu tek karşılaştırma ile kapsanmış olur. tx_queue_len belirsizdir: hem ring başına boyutlandırma çarpanı hem de ayarlanma anında hiçbir şey tahsis etmeyen tüketiciler (pfifo/bfifo/gred/plug/sfb limitleri, htb direct_qlen, qfq max_classes, teql) için varsayılan kuyruk uzunluğu/limit düğmesidir. 32767 değeri, yüksek BDP yollarında meşru bir kuyruk uzunluğu olarak kalırken, 2/3 yamasındaki u32 IFLA_TXQLEN politikası için NLA_POLICY_FULL_RANGE tarafından ifade edilebilen en büyük değer olarak seçilmiştir; paylaşımlı bir düğmenin ring-bellek ödünleşimi aşağıda açıklanmıştır. Hatanın yeniden oluşturulma koşulları: - CONFIG_NET_SCHED=y, CONFIG_VETH=y, CONFIG_USER_NS=y, CONFIG_NET_NS=y. - Yeni bir user+net ad alanındaki (unshare -Urn) ayrıcalıksız kullanıcı. - pfifo_fast: veth çiftleri oluşturun, tx_queue_len değerini 500000 olarak ayarlayın, mq+pfifo_fast ekleyin. Yaklaşık 28 yineleme 2GB'lık bir konuk makinede OOM'a neden olur. - tun: IFF_MULTI_QUEUE ile 50 adet tun cihazı oluşturun, tx_queue_len değerini 500000 olarak ayarlayın, her biri için 8 kuyruk açın. Yaklaşık 1.6GB'lık ptr_ring tahsisleri 512MB'lık bir konuk makinede OOM'a neden olur. - tap: IFF_TAP ile tun ile aynı işlemler. Yaklaşık 960MB 512MB'lık bir konuk makinede OOM'a neden olur. - Düzeltilmiş çekirdekte, aşırı boyutlu tx_queue_len ayarlanma anında -ERANGE ile reddedilir (dört yolun tamamı: RTM_SETLINK, RTM_NEWLINK oluşturma, sysfs, ioctl - son ikisi bu kontrol üzerinden, ilk ikisi ise sırasıyla bu kontrol ve 2/3 ayrıştırma politikası üzerinden).
Nasıl düzeltilir
- Linux Linux24d02c909a1725ab9eceb92db7d02e4e841f17ca, 5e5591a0f33f7c11bf1d338dbb6c5072575de64c, c8d4060610c69645733c92d94fceb4b93808ac4d, c2362c500931e5bd1826bce34e9ce28af80e7541, 81c0e02076989743a603806a5a4f44d2c40dc01f, 081340cf70a789b94b4174af54a63ffd49677a4e, a03b927bae4af5c23fd5315a237855c17cc8f422, 66ab4c59b74db7ab53a1c9083feaaede393a96a0 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < 24d02c909a1725ab9eceb92db7d02e4e841f17ca, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < 5e5591a0f33f7c11bf1d338dbb6c5072575de64c, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < c8d4060610c69645733c92d94fceb4b93808ac4d, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < c2362c500931e5bd1826bce34e9ce28af80e7541, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < 81c0e02076989743a603806a5a4f44d2c40dc01f, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < 081340cf70a789b94b4174af54a63ffd49677a4e, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < a03b927bae4af5c23fd5315a237855c17cc8f422, 6a643ddb5624be7e0694d49f5765a8d41c1ab6d0 ≤ v < 66ab4c59b74db7ab53a1c9083feaaede393a96a0, 4.16 | 24d02c909a1725ab9eceb92db7d02e4e841f17ca, 5e5591a0f33f7c11bf1d338dbb6c5072575de64c, c8d4060610c69645733c92d94fceb4b93808ac4d, c2362c500931e5bd1826bce34e9ce28af80e7541, 81c0e02076989743a603806a5a4f44d2c40dc01f, 081340cf70a789b94b4174af54a63ffd49677a4e, a03b927bae4af5c23fd5315a237855c17cc8f422, 66ab4c59b74db7ab53a1c9083feaaede393a96a0 |
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.