GO ve pas dillerinde yaygın olarak kullanılan "NET" kütüphanesi, karışık format IP adres doğrulama güvenlik açığından da etkilenir.
Hata, NET'in IP adreslerini, karışık (sekizde ondalık basamak) bir formatta verildiklerinde bile ondalık olarak tedavi eder.
Sonuç olarak, ağa güvenen uygulamalar, belirsiz sunucu tarafı istek yerine getirme (SSRF) ve Uzak Dosya İçerme (RFI) güvenlik açıklarına karşı savunmasız olabilir.
Önceden, kusur, Binlerce uygulama tarafından güvenilen, NetMask kütüphanesinin çeşitli uygulamalarını etkiledi.
Daha sonra, Ipaddress adlı Python Standard Kütüphanesi de kusura karşı savunmasız bulundu.
Bu hafta, Def Con, Güvenlik Araştırmacıları Cheng XU, Victor Viale, Hasta Kodları, Nick Sahçiler, Kelly Kaoudis, Opennota ve John Jackson, Net GO ve Pas dil modülünde bir kusur açıkladı.
CVE-2021-29922 (pas için) ve CVE-2021-29923 (Golang için) tarafından izlenen kırılganlık, net, karışık format IP adreslerini nasıl veya daha spesifik olarak, bir ondalık bir IPv4 adresi önde gelen bir sıfır içerdiğinde nasıl kullanılır?
Github'daki "İthalat Net" için basit bir arama, Net kütüphaneye güvenmek için tek başına 4 milyondan fazla dosyayı ortaya koyuyor.
Bir IP adresi, onaltılık ve tamsayı da dahil olmak üzere çeşitli formatlarda gösterilebilir, ancak en sık görülen IPv4 adresleri ondalık formatında ifade edilir.
Örneğin, BleepingComputer'ın ondalık formatında temsil edilen IPv4 adresi 104.20.59.209'dur, ancak aynı, Octal formatında, 0150.0024.0073.0321 olarak ifade edilebilir.
Yerel geri dönme adresi veya localhost olarak yaygın olarak anlaşılan ondalık formatında, 127.0.0.1'de bir IP adresi verildiğinizi söyleyin.
Eğer bir 0'ı ön ekliyorsanız, bir uygulama hala 0127.0.0.1 olarak ayrıştırılmalı mı? 127.0.0.1 veya başka bir şey mi?
Bunu web tarayıcınızda deneyin. BleepingComputer tarafından yapılan testlerde, Chrome'un adres çubuğunda 0127.0.0.1 / yazarak tarayıcıyı oktalı formatta bir IP olarak muamele ediyor.
ENTER veya RETURN düğmesine basıldığında, aslında IP, 87.0.0.1 ondalık eşdeğerine değişir, bu da çoğu belirsiz IP adreslerini işlemek için çoğu uygulamanın nasıl yapılması gerektiğidir.
Belirli bir not gerçeğidir, 127.0.1, halka açık bir IP adresi değildir, ancak bir geri dönüşlü adresi, belirsiz temsilcisi, tamamen farklı bir ana bilgisayara giden bir halka açık bir IP adresine değiştirir.
Ancak, net kütüphanenin durumunda, önde gelen sıfırlar basitçe sıyrılır ve atılır.
Bir IETF taslağına göre (bir spesifikasyona göre resmileştirilmeden önce süresi dolmuş), bir IPv4 adresinin parçaları bir "0" ile önceden eklenmişse oktatik olarak yorumlanabilir.
Bu nedenle, karışık formatlı bir IPv4 adresinin nasıl ayrıştırılacağı konusunda kurallar, uygulamalar arasında değişmektedir.
Net modül, hem GO hem de Pas, örneğin, bir IPv4 adresinin tüm oktetlerini, araştırmacıların raporlarında gösterildiği gibi ondalık olarak ondalık olarak görüyor. [1, 2].
Sonuç olarak, bir geliştirici, bir IP adresi belirli bir aralığa aitse (örneğin, bir Erişim Denetimi Listesi'ne (ACL) bir IP'lerin listesini ayrıştırmayı (örneğin, bir erişim kontrol listesine (ACL) ayrıştırılması durumunda, sonuç, IPv4 adreslerinin oktalar temelli temsilleri için yanlış gelebilir. .
Bu, belirsiz sunucu tarafı istek sahteciliğine (SSRF) ve uygulamalardaki uzak dosya dahil etme (RFI) güvenlik açıklarına neden olabilir.
Git ve pas bu hatadan etkilenecek tek dil değil.
Bu karışık format IP adresi doğrulama hatası, Python'un iPaddress kütüphanesini (CVE-2021-29921), NetMask uygulamalarını (CVE-2021-28918, CVE-2021-29418) ve benzeri kütüphanelerden etkiledi.
Çoğu durumda, hata yüksek veya eleştirel bir ciddiyete sahip olarak derecelendirilmiştir:
[Yayın] https://t.co/8gxarinc1c CVE-2020-28360 9.8 CVE-2021-28918 9.1 CVE-2021-29418 5.3 CVE-2021-29921 9.8 CVE-2021-29662 7.5 CVE-2021-29424 7.5 CVE-2021-29922 Yeni CVE-2021-29923 Yeni Oracle S1446698 Yeni Bu gece tavsiyede
Proje Bakıcılarına göre, Golang'ın net modülü (beta) sürüm 1.17'de yayınlanan bir yamaya [1, 2] sahip olacaktı.
Hasta Kodları BleepingComputer ile bazı görüşler paylaştı:
"GO güvenlik açığı, yalnızca Cidr blokları ile ilgilendiği için pastan biraz daha az etkisizdir."
"Ancak, Kubbernetlerin düzeltmeyi seçmesi için yeterince önemliydi." **
Hasta Kodları bir e-posta röportajında, dilinde yazılı tüm projeleri etkileyecek standart kütüphane değişikliği olan standart kütüphane değişiklikleri olduklarından, bir e-posta röportajında. "Dedi.
Pas için, BleepingComputer tarafından onaylandığı gibi Net Kütüphanede bir düzeltme zaten birleştirildi:
Pas Dili kullanıcıları, bu güvenlik açığının azaltılmasını içeren 1.53.0 veya üzeri sürümünü kullanmalıdır.
GÜNCELLEME 12:30 PM ET: Bağlantılı IETF taslağının sona erdiği ve bu kadar formalize olmadığı açıklandı.
** Düzeltme, 8 Ağustos, 02:10 AM: KUBERNETNET'ler düzeltmeyi uygulamadı, ancak beklenmedik şekilde herhangi bir yapıyı kırmayı önlemek için onu geri alır.
Python ayrıca kritik IP adres doğrulama güvenlik açığı tarafından da etkilendi
Microsoft Exchange Sunucuları Proxyshell Güvenlik Açığı için Taranan, Şimdi Yama
Aktif olarak sömürülen hata, milyonlarca yönlendiriciye kimlik doğrulamasını atlar
Yeni Windows PrintNightMare Sıfır Günleri Ücretsiz Resmi olmayan yama alın
Cisco: Firewall Manager RCE Hata, sıfır gündür, yama gelen
Kaynak: Bleeping Computer