Oldukça eski bir yama uygulanmamış Python güvenlik açığı yeniden ortaya çıktı ve araştırmacıların yüz binlerce projenin kod yürütmeye karşı savunmasız olabileceği konusunda uyarmalarına neden oldu.
Trellix’ten siber güvenlik araştırmacıları yakın zamanda görüldü (yeni sekmede açılır) Python tarfile paketindeki bir kusur olan CVE-2007-4559, ilk olarak 2007’de keşfedildi.
Ancak o zamanlar, kusur hiçbir zaman bir düzeltme eki değil, yalnızca bir güvenlik bülteninde yayınlanan bir uyarı aldı.
Hassas projeleri belirleme
Güvenlik açığı, temizlenmemiş tarfile.extract() işlevini veya yerleşik tarfileextractall() varsayılanlarını kullanan koddadır. Yayın, “Bir saldırganın rastgele dosyaların üzerine yazmasına olanak tanıyan bir yol geçiş hatası” diye yazdı.
Şimdi araştırmacılar, kusurun kötü bir oyuncuya dosya sistemine erişim sağladığını söylüyor. Python’un hata izleyicisi, kapanan bir sorunun duyurusu ile güncellendi ve “güvenilmeyen kaynaklardan arşiv çıkarmak tehlikeli olabilir” eki eklendi. Kusur hem Windows’ta hem de Linux’ta kötüye kullanılabilir.
On beş yıl uzun bir süre ve görünüşe göre, yaklaşık 350.000 proje savunmasız olabilir. Trellix’in araştırmacıları ilk olarak savunmasız olan 257 depodan (%61) bir örnek aldı. Otomatik bir analiz %65 pozitif oran ile geri geldi.
Ardından, Trellix’in araştırmacıları GitHub ile birlikte Python kodunda “import tarfile” içeren 588.840 benzersiz depo buldu ve bu onları 350.000’in (veya kabaca %61’inin) savunmasız olabileceği sonucuna götürdü.
Araştırmacılar ayrıca, sorunun “çok sayıda” endüstride mevcut olduğunu buldu. gelişme (yeni sekmede açılır) sektör, şaşırtıcı olmayan bir şekilde, en çok etkilenen sektördür ve onu web ve makine öğrenimi teknolojisi izlemektedir.
Trellix’in araştırmacıları, etkilenen deponun bir çatalı olarak mevcut olan yaklaşık 11.000 proje için düzeltmeler yayınladı. Bu yamalar daha sonraki bir tarihte pull request ile ana projeye eklenecektir, eklendi. 70.000 proje daha birkaç hafta içinde düzeltmelerini alacak, ancak hepsinin düzeltilmesi biraz zaman alacak.