
Son aylarda, güvenlik araştırmacıları, Zip Arşivi formatındaki belirsizlikler aracılığıyla Python paket montajcılarını hedefleyen yeni bir saldırı vektörünü ortaya çıkardılar.
Yerel dosya başlıkları ve merkezi dizin arasındaki tutarsızlıklardan yararlanarak, kötü niyetli aktörler, savunmasız yükleyiciler tarafından paketlendiğinde, yetkisiz dosyaları hedef ortama sessizce kaçıran görünüşte iyi huylu tekerlek dağılımları oluşturabilirler.
Bu teknik, 1989’da birden fazla depolama hacminde artımlı güncellemeleri desteklemek için geliştirilen ZIP standardının eski özelliklerinden yararlanır ve birçok popüler Python montajcısında sıkı çapraz doğrulama eksikliğini kötüye kullanır.
İlk raporlar, UV yükleyicisinin bakıcıları, çıkarıldıktan sonra amaçlanan paket dizinlerinin dışında görünen dosyaları fark ettiğinde ortaya çıktı.
Python Paket Dizin blog analistleri, belirli tekerlek dosyalarının eşleşmeyen kayıt girişleri ve merkezi dizin başlıkları içerdiğini belirleyerek, unzip tarzı araçların kurulum sırasında yabancı yükler içermesi için önderlik etti.
PYPI bugüne kadar gerçek dünyadaki sömürü olayları görmese de, danışmanlık en büyük yazılım depolarından birinde tedarik zinciri uzlaşma potansiyelinin altını çizmektedir.
Bu ortaya çıkan tehdidi ele almak için PYPI, yüklenen tüm zip ve tekerlek arşivlerinde bir dizi sıkı doğrulama kontrolü uyguluyor.
Yerel dosya başlıkları ve merkezi dizin arasında yinelenen dosya adları olan tekerlekler, geçersiz çerçeveleme veya sondaki verilere sahip arşivler gibi reddedilecektir.
1 Şubat 2026’dan itibaren, içeriği rekor meta veri dosyasına tam olarak uymayan herhangi bir tekerlek, altı aylık bir uyarı döneminin ardından yüklemede engellenecektir.
Bu önlemler, hem paketleyicileri hem de yükleyici projelerini sağlam ayrıştırma mantığını benimsemeye ve gömülü sağlama toplamlarına karşı çapraz kontrolleri zorlamaya zorlamayı amaçlamaktadır.
Kayıt uyuşmazlığı yoluyla enfeksiyon mekanizması
Bu saldırının çekirdeği, yükleyicinin ekstraksiyondan önce gerçek zip içeriğine karşı kayıt girişlerini doğrulamamasıdır.
Kötü niyetli bir tekerlek, yalnızca iyi huylu dosyaları kayıt altına alabilir – __init__.py
Ve module.py
– Farklı yerel dosya başlık adlarına ek yükleri yerleştirirken.
Bir yükleyici önce merkezi dizini okuduğunda, çıkarılacak dosyaların listesine güvenir; Bununla birlikte, unzip eşdeğer uygulamalar, yerel dosya başlıklarını sıradan işleyebilir ve yanlışlıkla gizli arka kapıları yükleyebilir.
Minimal istismar şunları içerebilir:-
# Example: Crafting a malicious RECORD metadata
with open('RECORD', 'w') as rec:
rec.write('package/__init__.py,sha256=abcdef1234567890,\n')
rec.write('package/module.py,sha256=123456abcdef7890,\n')
# Payload file omitted from RECORD
Kayıt tutarsızlık tablosu, yerel dosya başlığının bulunduğu örnek bir arşivi göstermektedir. package/installer_backdoor.py
kayıtta yoktur, ancak zip yükünde bulunur.
Bu tür uyumsuzlukları reddederek, PYPI sadece tam olarak onaylanmış tekerleklerin ekosisteme girmesini sağlar.
SOC’nizi en son tehdit verilerine tam erişimle donatın Herhangi biri. Olay yanıtı iyileştirebilir -> 14 günlük ücretsiz deneme alın