CVE-2026-90058
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: net/sched: qdisc soft lockup'ı önlemek için qdisc_pkt_len sınırlandırıldı qdisc_get_stab(), kullanıcı tarafından sağlanan bir boyut tablosunu kabul eder ve __qdisc_calculate_pkt_len(); ek yük, boyut tablosu verisi (u16) ve size_log (STAB_SIZE_LOG_MAX değerine kadar) aracılığıyla qdisc_pkt_len()'i artırır. Bu nedenle, özel olarak hazırlanmış bir stab, sıradan bir skb için qdisc_pkt_len()'i yaklaşık 1 GiB olarak ayarlayabilir. DRR ve ETS gibi akış başına açık hesap çizelgeleyicileri, döngü yinelemesi başına bir kuantum yeniler; çok küçük bir kuantum (1) ile qdisc kilidi altında milyarlarca kez dönerler ve [email protected] tarafından örneklendiği üzere bir soft lockup / RCU stall oluşur. Boyut tablosu artırımının açık hesap çizelgeleyicilerini sınırsız bir döngüye sokmasını önlemek için nihai qdisc_pkt_len() değeri QDISC_PKT_LEN_MAX ile sınırlandırılmıştır. Meşru bir boyut tablosu (örneğin, paket düşürme yoluyla işlenen qfq'nun 999999999 ek yükü) hala kabul edilmektedir. Herhangi bir meşru tekil-skb hat uzunluğunun oldukça üzerinde olan QDISC_PKT_LEN_MAX (1 << 20) = 1 MiB sınırı getirilmiştir: mevcut en büyük skb->len değeri GSO_MAX_SIZE (524280)'dir ve ATM tarzı bir boyut tablosu (53/48 hücre vergisi) bunu yaklaşık 578 KB'a çıkarır; her iki değer de rahatlıkla 1 MiB'ın altındadır. Aynı zamanda 1 MiB, kuantum=1 olduğunda açık hesap doldurma döngüsünü paket başına yaklaşık 1 milyon yineleme ile sınırlandırır; bu işlem birkaç milisaniyede tamamlanır ve kanıtlanmış softlockup eşiğinin (~10^9 yineleme) oldukça altındadır. Hatanın yeniden oluşturulma koşulları: - CONFIG_NET_SCHED=y, CONFIG_NET_SCH_DRR=y (veya CONFIG_NET_SCH_ETS=y). - qdisc_pkt_len'i yaklaşık 1 GiB'a çıkaran özel bir TCA_STAB ile bir DRR (veya ETS) kök qdisc ekleyin (örneğin size_log=15, data=[32768]). - 1 gibi çok küçük bir kuantuma sahip bir sınıf ekleyin ve bir adet küçük paket gönderin; açık hesap döngüsü qdisc kilidi altında milyarlarca kez döner ve softlockup dedektörünü tetikler (kernel.softlockup_panic=1 ise panic oluşur). - Root kullanıcısı olarak veya yeni bir user+net ad alanında (unshare -Urn) yerel CAP_NET_ADMIN yetkisine sahip ayrıcalıksız bir kullanıcı üzerinden erişilebilir.
Nasıl düzeltilir
- Linux Linux4f0f4b09a95ef602fbdae948326beadd9c20eab3, 0bc5a6280a132a2170c6fa742436e01b635f02de, 448c34421b38ec7c93a0060a885218ca319d382b, 82fdbf49b9f7528c82bf608cfa9710e5f81a198c, 6e78792d8ce1fa3561713860ee8086901dde4f99, 1a5c26e586481bc82abc19ac92c3d9f10518f525, 16d21a27df3f50b7251c9388fc5a7ab22703b469, 8f735d64382dcf162f4276d6699d03ad2f859c0b ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 4f0f4b09a95ef602fbdae948326beadd9c20eab3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 0bc5a6280a132a2170c6fa742436e01b635f02de, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 448c34421b38ec7c93a0060a885218ca319d382b, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 82fdbf49b9f7528c82bf608cfa9710e5f81a198c, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 6e78792d8ce1fa3561713860ee8086901dde4f99, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1a5c26e586481bc82abc19ac92c3d9f10518f525, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 16d21a27df3f50b7251c9388fc5a7ab22703b469, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 8f735d64382dcf162f4276d6699d03ad2f859c0b, 2.6.12 | 4f0f4b09a95ef602fbdae948326beadd9c20eab3, 0bc5a6280a132a2170c6fa742436e01b635f02de, 448c34421b38ec7c93a0060a885218ca319d382b, 82fdbf49b9f7528c82bf608cfa9710e5f81a198c, 6e78792d8ce1fa3561713860ee8086901dde4f99, 1a5c26e586481bc82abc19ac92c3d9f10518f525, 16d21a27df3f50b7251c9388fc5a7ab22703b469, 8f735d64382dcf162f4276d6699d03ad2f859c0b |
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.