‘350.000’den fazla’ projede 15 yıllık Python hatası bulundu • The Register

En az 350.000 açık kaynak projesinin, 15 yıldır düzeltilmeyen bir Python modülü kusuru yoluyla istismara karşı potansiyel olarak savunmasız olduğuna inanılıyor.

Salı günü, güvenlik firması Trellix, tehdit araştırmacılarının Python’da bir güvenlik açığıyla karşılaştığını söyledi. tarfile tar arşivleri olarak bilinen sıkıştırılmış dosya demetlerini okumanın ve yazmanın bir yolunu sağlayan modül. Başlangıçta, böcek avcıları bir sıfır-güne denk geldiklerini düşündüler.

Yaklaşık 5.500 günlük bir sorun olduğu ortaya çıktı: Böcek, son on buçuk yıldır en iyi hayatını yaşıyor ve neslinin tükenmesini bekliyor.

CVE-2007-4559 olarak tanımlanan güvenlik açığı, 24 Ağustos 2007’de, o sırada SUSE için Python paketinin bakımını yapan Jan Matejek’in bir Python posta listesi gönderisinde ortaya çıktı. Güvenlik açığı bulunan bir uygulama aracılığıyla kötü amaçlı bir tar arşivi açtığında, potansiyel olarak kurbanın makinesindeki dosyaların üzerine yazmak ve ele geçirmek için kullanılabilir. tarfile.

“Güvenlik açığı temelde şu şekildedir: Adlı bir dosya tararsanız "../../../../../etc/passwd" ve sonra yönetici yap untar /etc/passwd’nin üzerine yazılır,” diye açıkladı Matejek o sırada.

Tarfile dizini geçiş hatası 29 Ağustos 2007’de Red Hat’ta yazılım mühendisi olan Tomas Hoger tarafından bildirildi.

Ama zaten bir şekilde ele alınmıştı. Bir gün önce, tarfile modülünün koruyucusu Lars Gustäbel, varsayılan bir true ekleyen bir kod değişikliği yaptı. check_paths parametre ve bir yardımcı fonksiyon TarFile.extractall() tar arşiv dosyası yolu güvenli değilse hata veren yöntem.

Ancak düzeltme sorunu çözmedi TarFile.extract() Gustäbel’in “hiç kullanılmaması gerektiğini” söylediği yöntem – ve güvenilmeyen arşivlerden veri çıkarmanın sorunlara neden olma olasılığını açık bıraktı.

Bir yorum dizisinde Gustäbel, bunu artık bir güvenlik sorunu olarak görmediğini açıkladı. “tarfile.py yanlış bir şey yapmaz, davranışı POSIX’teki pax tanımına ve yol adı çözümleme yönergelerine uygundur” diye yazdı.

“Bilinen veya olası bir pratik istismar yok. [updated] güvenilmeyen kaynaklardan arşiv çıkarmanın tehlikeli olabileceğine dair bir uyarı içeren belgeler. IMO’nun yapması gereken tek şey bu.”

Gerçekten de, belgeler bu tabancayı açıklar:

Uyarı: Arşivleri asla önceden incelemeden güvenilmeyen kaynaklardan çıkarmayın. Dosyaların dışında oluşturulmuş olması mümkündür. yolörneğin ile başlayan mutlak dosya adlarına sahip üyeler "/" veya iki noktalı dosya adları "..".

Ve yine de buradayız, hem extract() ve extractall() hala keyfi yol geçişi tehdidi oluşturuyor.

“Güvenlik açığı, bir yol geçiş saldırısıdır. extract ve extractall tarfile modülündeki, bir saldırganın bir tar arşivindeki dosya adlarına ‘..’ dizisini ekleyerek rastgele dosyaların üzerine yazmasına izin veren işlevler,” diye açıkladı Trellix için güvenlik açığı araştırmacısı Kasimir Schulz bir blog yazısında.

“..” dizisi, geçerli çalışma yolunu üst dizine değiştirir. Schulz, aşağıdaki altı satırlık pasaj gibi bir kod kullanarak diyor ki, tarfile modüle dosyanın meta verilerini tar arşivine eklenmeden önce okuması ve değiştirmesi söylenebilir. Ve sonuç bir istismardır.

import tarfile

def change_name(tarinfo):
    tarinfo.name = "../" + tarinfo.name
    return tarinfo

with tarfile.open("exploit.tar", "w:xz") as tar:
    tar.add("malicious_file", filter=change_name)

Schulz’a göre, Trellix CVE-2007-4559’u taramak için Creosote adlı ücretsiz bir araç geliştirdi. Yazılım, Python için yazılmış açık kaynaklı bir bilimsel ortam olan Spyder IDE ve Linux ve Docker için bir BT altyapı yönetim hizmeti olan Polemarch gibi uygulamalarda gizlenen hatayı zaten buldu.

Şirket tahmin ediyor tarfile kusur “350.000’den fazla açık kaynak projesinde ve kapalı kaynak projelerinde yaygın olarak bulunabilir.” Şuna da işaret ediyor: tarfile herhangi bir Python projesinde varsayılan bir modüldür ve AWS, Facebook, Google ve Intel tarafından oluşturulan çerçevelerde ve makine öğrenimi, otomasyon ve Docker kapsayıcılarına yönelik uygulamalarda bulunur.

Trellix, onarılan kodu etkilenen projelere sunmak için çalıştığını söylüyor.

Trellix güvenlik açığı araştırmacısı Charles McFarland bir blog yazısında, “Araçlarımızı kullanarak şu anda 11.005 depo için çekme isteklerine hazır yamalarımız var” dedi. “Her yama, çatallı bir depoya eklenecek ve zaman içinde yapılan bir çekme talebi olacak. Bu, hem bireylerin hem de kuruluşların sorunun farkına varmasına ve onlara tek tıklamayla düzeltme yapmasına yardımcı olacak.

“Hassas projelerin boyutu nedeniyle, bu süreci önümüzdeki birkaç hafta içinde sürdürmeyi umuyoruz. Bu, tamamlanma zamanında tüm hassas projelerin yüzde 12,06’sına, yani 70 binin biraz üzerinde projeye ulaşması bekleniyor.”

Etkilenen projelerin kalan yüzde 87,94’ü diğer olası seçenekleri değerlendirmek isteyebilir. ®

Leave a Comment