CVE-2026-81003
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net/iucv: afiucv_hs_rcv() fonksiyonundaki çerçevelerin giriş cihazına göre filtrelenmesi afiucv_hs_rcv(), taşıma başlığındaki yalnızca dört adet 8 baytlık isim alanını eşleştirerek iucv_sk_list üzerinden bir soket seçer. Çerçevenin geldiği net_device üzerinde herhangi bir kontrol yapılmamaktadır. Bu durum, herhangi bir netdev üzerinden gelen bir çerçevenin bir AF_IUCV soketine iletilmesine neden olabilir. Bunun sonucunda üç sorun ortaya çıkar. Birincisi, HiperSockets üzerinden gelen bir çerçeve, iucv->hs_dev == NULL olan klasik z/VM IUCV taşımasına bağlı bir sokete iletilebilir. iucv_sock_bind(), talep edilen kullanıcı kimliği iucv_userid ile eşleştiğinde, aynı tanımlayıcıyı taşıyan bir HiperSockets cihazına sahip bir konukta bile her zaman klasik yolu izler. Böyle bir eşleşme için afiucv_hs_callback_syn() tarafından oluşturulan alt soket, hs_dev = NULL ve transport = AF_IUCV_TRANS_HIPER değerlerini devralır, bu nedenle üzerindeki ilk send() çağrısı -ENODEV döndürür. accept() fonksiyonuna iletilen soket kullanılamaz durumdadır. İkincisi, bir netdev üzerinden gelen bir çerçeve, farklı bir IQD cihazına bağlı bir sokete iletilebilir. Bu durum şunlara yol açabilir: - Kabul kuyruğunun tükenmesi (DoS) - Alt sokette saldırgan tarafından kontrol edilen eş kimliği - Mevcut soketlere veri enjeksiyonu - Sahte yanıtların gönderildiği IQD fabric üzerinde fabric gürültüsü - Kurulmuş bağlantıların sonlandırılması Üçüncüsü, iucv_sock_alloc() fonksiyonu sk_alloc(&init_net, ...) çağırdığından tüm AF_IUCV soketleri init_net içinde yer alır. Ancak bir namespace içindeki netdev cihazlarından gelen çerçeveler bile bir IUCV soketine iletilebilir. Dolayısıyla, yalnızca o namespace içinde geçerli olan CAP_NET_RAW yeteneğine sahip, ayrıcalıksız bir kullanıcı ve ağ namespace'indeki bir işlem, kendi lo cihazı üzerinden ham bir ETH_P_AF_IUCV çerçevesi gönderebilir ve bunun init_net soketleriyle eşleşmesini sağlayabilir. hs_dev değeri giriş cihazıyla eşleşmeyen tüm soketler atlanarak bu üç sorun da giderilmiştir. Klasik bir z/VM IUCV soketi hs_dev == NULL değerine sahiptir; giriş cihazı asla NULL değildir, bu nedenle klasik soketler otomatik olarak atlanır. Bağlanmamış bir HIPER soketi de hs_dev == NULL değerine sahiptir ve atlanır. Bağlı bir HIPER soketine yalnızca bağlandığı tam IQD cihazından erişilebilir. hs_dev her zaman init_net içindeki bir cihaz olduğundan (iucv_sock_bind() özel olarak for_each_netdev_rcu(&init_net, ...) taraması yapar), giriş cihazı başka bir namespace'e ait olan bir çerçeve hiçbir soketle eşleşmez. HiperSockets üzerinden AF_IUCV'nin bağlantı başına kimlik doğrulama sağlamadığına dikkat edilmelidir: sıra numaraları, TLS veya nonce bulunmamaktadır. Bir bağlantıyı tanımlayan dört isim alanı, paylaşılan HiperSockets segmentinde (VCHID) açık metin olarak değiştirilir. Aynı HiperSockets segmentindeki herhangi bir ana bilgisayar, mevcut bir bağlantıya karşı herhangi bir çerçeve türünü taklit edebilir. Bu, söz konusu yama ile değiştirilmeyen protokol düzeyinde bir özelliktir. Düzeltme, saldırı yüzeyini yalnızca aynı HiperSockets segmentinde bulunan eşlerle sınırlandırır.
Nasıl düzeltilir
- Linux Linux639828ad4d374056167391dbaffd13dd5e5e5ddb, 92e5c281f1caa287bb58292f2687c9e3ff3aa23e, 712330f8a4293cfd97b0d62b7c7dc01862a16b98, 0a5af67e7184c6a0e155c317840bd64b37177af4, dfac2936b83be00035ae176f8252e1c1e1de9207, 8e3763f1ccac3fc395f9af2b87114c023ced8a3f, a7f0130a091724e69827ab58e74777a88747e892, 80230a18c164a4b5bbc048fe2768b219ac17bc5a ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 3881ac441f642d56503818123446f7298442236b ≤ v < 639828ad4d374056167391dbaffd13dd5e5e5ddb, 3881ac441f642d56503818123446f7298442236b ≤ v < 92e5c281f1caa287bb58292f2687c9e3ff3aa23e, 3881ac441f642d56503818123446f7298442236b ≤ v < 712330f8a4293cfd97b0d62b7c7dc01862a16b98, 3881ac441f642d56503818123446f7298442236b ≤ v < 0a5af67e7184c6a0e155c317840bd64b37177af4, 3881ac441f642d56503818123446f7298442236b ≤ v < dfac2936b83be00035ae176f8252e1c1e1de9207, 3881ac441f642d56503818123446f7298442236b ≤ v < 8e3763f1ccac3fc395f9af2b87114c023ced8a3f, 3881ac441f642d56503818123446f7298442236b ≤ v < a7f0130a091724e69827ab58e74777a88747e892, 3881ac441f642d56503818123446f7298442236b ≤ v < 80230a18c164a4b5bbc048fe2768b219ac17bc5a, 3.2 | 639828ad4d374056167391dbaffd13dd5e5e5ddb, 92e5c281f1caa287bb58292f2687c9e3ff3aa23e, 712330f8a4293cfd97b0d62b7c7dc01862a16b98, 0a5af67e7184c6a0e155c317840bd64b37177af4, dfac2936b83be00035ae176f8252e1c1e1de9207, 8e3763f1ccac3fc395f9af2b87114c023ced8a3f, a7f0130a091724e69827ab58e74777a88747e892, 80230a18c164a4b5bbc048fe2768b219ac17bc5a |
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.