Python programlama dilinde 15 yıldır gözden kaçan bir güvenlik açığı, büyük olasılıkla 350.000’den fazla açık kaynak deposunu etkilediği ve kod yürütülmesine yol açabileceği için yeniden gündeme geldi.
2007’de açıklanan ve CVE-2007-4559 olarak etiketlenen güvenlik sorunu hiçbir zaman bir yama almadı; sağlanan tek azaltma, geliştiricileri risk hakkında uyaran bir belge güncellemesiydi.
2007’den beri yama yapılmadı
Güvenlik açığı Python’da tar dosyası paket, sterilize edilmemiş kodda tarfile.extract() işlevi veya tarfile.extractall() öğesinin yerleşik varsayılanları. Bir saldırganın rastgele dosyaların üzerine yazmasını sağlayan bir yol geçiş hatasıdır.
CVE-2007-4559 için teknik ayrıntılar, ilk sürümden beri mevcuttur. bildiri Bu hatanın saldırılarda kullanıldığına dair herhangi bir rapor bulunmamakla birlikte, yazılım tedarik zincirinde bir risk teşkil etmektedir.
Bu yılın başlarında, CVE-2007-4559, başka bir güvenlik sorununu araştırırken, genişletilmiş algılama ve yanıt (XDR) çözümleri sunan yeni bir işletme olan Trellix’teki bir araştırmacı tarafından yeniden keşfedildi. birleşme McAfee Enterprise ve FireEye.
“Tarfile.extract() tarfile.extractall() çağrılmadan önce üyelerin dosyalarını sterilize etmek için herhangi bir güvenlik kodu yazılmaması, bir dizin geçişi güvenlik açığıyla sonuçlanır ve dosya sistemine kötü bir aktör erişimi sağlar” – Charles McFarland, güvenlik açığı araştırmacısı Trellix Gelişmiş Tehdit Araştırma ekibi
Kusur, kodun Ayıkla Python’da işlev tar dosyası modül açıkça TarInfo nesnesindeki bilgilere güvenir “ve çıkarma işlevine iletilen yolu ve TarInfo nesnesindeki adı birleştirir”

kaynak: kafes
Açıklamanın üzerinden bir haftadan az bir süre geçtikten sonra, Python hata izleyicisindeki mesaj sorunun kapatıldığını duyurdu, düzeltmenin belgeleri “güvenilmeyen kaynaklardan arşiv çıkarmanın tehlikeli olabileceği” uyarısıyla güncellenmesiydi.
Tahmini 350.000 proje etkilendi
Etkiyi analiz eden Trellix araştırmacıları, güvenlik açığının hem açık hem de kapalı kaynaklı binlerce yazılım projesinde mevcut olduğunu buldu.
Araştırmacılar, savunmasız kodu içerme olasılığı daha yüksek olan 257 depodan oluşan bir kümeyi kazıdı ve etkilenip etkilenmediklerini görmek için 175’ini manuel olarak kontrol etti. Bu, %61’inin savunmasız olduğunu ortaya çıkardı.
Depoların geri kalanında otomatik bir kontrol yürütmek, etkilenen projelerin sayısını %65’e çıkararak yaygın bir soruna işaret ediyor.
Bununla birlikte, küçük örnek seti, GitHub’da bulunan tüm etkilenen depoların bir tahminini yapmak için yalnızca bir temel olarak hizmet etti.
“GitHub’ın yardımıyla, python kodunda ‘import tarfile’ içeren 588.840 benzersiz depoyu içerecek şekilde çok daha büyük bir veri kümesi elde edebildik” – Charles McFarland
Trellix, manuel olarak doğrulanan %61 güvenlik açığı oranını kullanarak, çoğu geliştiricilerin bir projeyi daha hızlı tamamlamasına yardımcı olan makine öğrenimi araçları (örn. GitHub Copilot) tarafından kullanılan 350.000’den fazla güvenlik açığı bulunan depo olduğunu tahmin ediyor.
Bu tür otomatik araçlar, “otomatik tamamlama” seçenekleri sağlamak için yüz binlerce depodan alınan koda güvenir. Güvenli olmayan kod sağlarlarsa sorun, geliştiricinin haberi olmadan diğer projelere yayılır.

kaynak: kafes
Sorunu daha yakından inceleyen Trellix, açık kaynak kodunun CVE-2007-4559’a karşı savunmasız olduğunu “çok sayıda endüstriyi kapsadığını” buldu.
Beklendiği gibi, en çok etkilenen geliştirme sektörü, ardından web ve makine öğrenimi teknolojisi.

kaynak: kafes
CVE-2007-4559’dan Yararlanma
İçinde teknik blog yazısı bugün, hatayı yeniden keşfeden Trellix güvenlik açığı araştırmacısı Kasimir Schulz, bilimsel programlama için açık kaynaklı bir çapraz platform entegre geliştirme ortamı olan Spyder IDE’nin Windows sürümünde CVE-2007-4559’dan yararlanmanın basit adımlarını açıkladı.
https://www.youtube.com/watch?v=jqs8S51_TR
Araştırmacılar, güvenlik açığının Linux’ta da kullanılabileceğini gösterdi. Polemarch BT altyapı yönetimi hizmetinde bir testte dosya yazma işlemini yükseltmeyi ve kod yürütmeyi başardılar.
Trellix, güvenlik açığına ve oluşturduğu riske dikkat çekmenin yanı sıra, 11.000’den biraz fazla proje için yamalar da oluşturdu. Düzeltmeler, etkilenen deponun çatallanmış biçiminde sunulacak. Daha sonra çekme istekleri ile ana projeye eklenecektir.
Etkilenen çok sayıda depo nedeniyle, araştırmacılar önümüzdeki birkaç hafta içinde 70.000’den fazla projenin bir düzeltme almasını bekliyor. %100 işaretine ulaşmak zor bir iştir, çünkü birleştirme isteklerinin de bakımcılar tarafından kabul edilmesi gerekir.
BleepingComputer, CVE-2007-4559 hakkında bir yorum için Python Yazılım Vakfı’na ulaştı, ancak yayınlandığı sırada bir yanıt alamadı.