Rust and Go'nun ağ kitaplıklarında güvenlik açıkları buldular ve IP doğrulamasını engellediler

geçenlerde güvenlik açıkları hakkında bilgi yayınlandı dillerin standart kitaplıklarında bulunan pas ve git, hangileri IP adreslerinin yanlış kullanımıyla ilgili adres analizi işlevlerinde sekizli basamaklı.

e olduğu belirtiliyorBu güvenlik açıkları, geçerli adreslerin doğrulanmasından kaçınmanıza ven uygulamalar, örneğin, sunucu tarafı istek sızdırma saldırıları gerçekleştirildiğinde geri döngü arabirim adreslerine veya intranet alt ağlarına erişimi düzenlemek için.

Bu iki dildeki güvenlik açıkları IP adresi dizelerinin spesifikasyonda gerçekleşmesi var sıfır tabanlı, çünkü sen teoride sekizli sayılar olarak yorumlanmaları gerekir, ancak Bu hatalara neden olan sorun, birçok kütüphanenin bunu dikkate almaması ve sadece sıfırı atmasıdır. değeri ondalık sayı olarak ele alırlar.

Örneğin, IP adreslerinin bu hatalarda nasıl yorumlandığını anlamak için, sekizlikteki 0177 sayısı ondalık olarak 127'dir ve saldırganın "0177.0.0.1" değerini belirten bir kaynak talep edebileceği, çünkü bu, alınmadığı için sekizli olarak, bunun ondalık gösterimi "127.0.0.1"dir.

Bu yüzden sorunlu kitaplıklardan birinin kullanılması durumunda, uygulama adresin oluşumunu tespit etmeyecek 0177.0.0.1 alt ağ 127.0.0.1'de, ancak aslında, bir istek gönderirken "0177.0.0.1" adresini arayabilirsiniz, yanlış yorumlama nedeniyle ağ işlevleri bunu 127.0.0.1 olarak işleyecektir. Benzer şekilde, intranet adreslerine erişim, saldırganın olası kötüye kullanım için değerlendireceği çeşitli değerler belirtilerek kandırılabilir ve doğrulanabilir.

tarafta Rust, sorunun "std :: net" standart kitaplığına tabi olduğu bulundu. ve zaten "CVE-2021-29922" altında kataloglanmıştır. Bunu açıklıyor bu kitaplığın IP adreslerinin ayrıştırıcısı, değerlerin önüne bir sıfır atar. ancak yalnızca üç basamaktan fazla belirtilmemişse, örneğin "0177.0.0.1" geçersiz bir değer olarak yorumlanacak ve yanıt olarak yanlış bir sonuç döndürülecektir.

Rus-lang standart "net" kitaplığındaki yanlış sekizli dizi giriş doğrulaması, kimliği doğrulanmamış uzak saldırganların rust-lang std :: net'e bağlı birçok programda belirsiz SSRF, RFI ve LFI saldırıları gerçekleştirmesine olanak tanır. IP adresinin sekizlileri, geçerli IP adresleri olarak değerlendirilmek yerine çıkarılarak bırakılır.

Ayrıca std :: net :: IpAddr kütüphanesini kullanan uygulamalardan da bahsedilmektedir. belirtilen adresleri ayrıştırırken kullanıcı tarafından SSRF saldırılarına karşı potansiyel olarak hassastır (sunucu tarafı istek sahtekarlığı), RFI (uzaktan dosya ekleme) ve BIA (yerel dosyaların dahil edilmesi). Benzer şekilde, bir saldırgan aslında 127.0.026.1 olan 127.0.22 girebilir.

Örneğin, std :: net :: IpAddr tabanlı bir web uygulamasına IP adresi gönderen bir saldırgan, sekizli giriş verisi girerek SSRF'ye neden olabilir; Sekizli, hizmet reddine yol açan en düşük sömürülebilir sekizli 3 ve hizmet reddine yol açan maksimum sömürülebilir sekizli 08 ile birlikte, sekizli 099 basamaklıysa, kötüye kullanılabilir IP adresleri gönderebilir. 

Bu güvenlik açığı hakkında daha fazla bilgi edinmek istiyorsanız Rust'ta ayrıntıları kontrol edebilirsiniz Aşağıdaki bağlantıda. Rust 1.53.0 şubesinde de güvenlik açığının giderildiği belirtiliyor.

En kısa sürede etkileyen soruna Git, bunun standart kütüphane «net» e tabi olduğu belirtilir. ve zaten CVE-2021-29923 altında listelenmiştir. Açıklamada bundan bahsediliyor kimliği doğrulanmamış uzak saldırganların SSRF, RFI ve LFI saldırıları gerçekleştirmesine izin verir golang'ın yerleşik net.ParseCIDR işlevine bağlı olan birçok programda belirsizdir. Tek tek CIDR IP sekizlileri, geçerli IP sekizlileri olarak değerlendirilmek yerine çıkarılır.

Örneğin, bir saldırgan net.ParseCIDR işlevinde kontrol edildiğinde 00000177.0.0.1/177.0.0.1 olarak değil 24/127.0.0.1 olarak ayrıştırılacak olan 24 değerini geçebilir. Sorun Kubernetes platformunda da kendini gösteriyor. Güvenlik açığı, Go sürüm 1.16.3 ve beta sürüm 1.17'de düzeltildi.

bunun hakkında daha fazla bilgi edinebilirsin bu güvenlik açığı hakkında Aşağıdaki bağlantıda.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: Miguel Ángel Gatón
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.