Eski Python Bootstrap Komut Dosyaları Çoklu PyPI Paketlerinde Etki Alanı Devralma Riski Oluşturuyor


28 Kasım 2025Ravie LakshmananKötü Amaçlı Yazılım / Güvenlik Açığı

Siber güvenlik araştırmacıları, eski Python paketlerinde, etki alanı ele geçirme saldırısı yoluyla Python Paket Dizininde (PyPI) tedarik zincirinde uzlaşmaya yol açabilecek güvenlik açığı bulunan kod keşfettiler.

Yazılım tedarik zinciri güvenlik şirketi ReversingLabs, “zc.buildout” adlı bir derleme ve dağıtım otomasyon aracı tarafından sağlanan önyükleme dosyalarında “güvenlik açığı” bulduğunu söyledi.

Güvenlik araştırmacısı Vladimir Pezo, “Komut dosyaları, gerekli kitaplıkların ve araçların indirilmesi, oluşturulması ve kurulması sürecini otomatikleştiriyor” dedi. “Özellikle, önyükleme betiği çalıştırıldığında, python-distribute’tan Distribute paketi için bir kurulum betiği getirir ve çalıştırır.[.]org – reklam gelirini artıracak şekilde yönetilirken artık premium fiyat aralığında satışa sunulan eski bir alan adı.”

Söz konusu alana erişen bir önyükleme komut dosyası içeren PyPI paketleri arasında tornado, pypiserver, slapos.core, roman, xlutils ve testfixtures bulunur.

DFIR Tutucu Hizmetleri

Sorunun özü, Buildout ortamını başlatmak için zc.buildout aracıyla birlikte kullanılan eski bir önyükleme komut dosyasıyla (“bootstrap.py”) ilgilidir. Python betiği ayrıca, Setuptools projesinin kısa ömürlü bir çatalı olan “Distribute” adlı bir paketleme yardımcı programının yerel ortama kurulma yeteneğini de destekledi.

Bunu başarmak için, Distribute kurulum betiği (“distribute_setup.py”) python-distribute’tan alınır.[.]org, 2014’ten beri satışa sunulan bir alan adı. Seçeneği eklerken amaç, önyükleme komut dosyasına, yapı için yumurtaları ve bağımlılıkları yönetmek üzere eski Setuptools paketi yerine Distribute paketini indirip yükleme talimatını vermekti.

Distribute çatalının, o dönemde kullanılan ana paket yönetim aracı olan Setuptools’un aktif olarak geliştirilmemesi nedeniyle ortaya çıktığını belirtmek önemlidir. Ancak Distribute’un özellikleri 2013 yılında Kurulum Araçları’na yeniden entegre edildi ve Distribute’un geçerliliğini yitirdi.

ReversingLabs tarafından tanımlanan sorun, birçok paketin, Distribute’u varsayılan olarak yüklemeye çalışan veya komut satırı seçeneği (“-d” veya “–distribute”) belirtildiğinde önyükleme komut dosyasını göndermeye devam etmesiyle ilgilidir. Bu, söz konusu alanın ele geçirilmeye hazır olduğu gerçeğiyle birleştiğinde, bir saldırganın önyükleme komut dosyası yanlışlıkla çalıştırıldığında ve potansiyel olarak hassas verileri çaldığında, bir saldırganın bu kurulumu kötü amaçlı kod sunmak üzere silah haline getirebileceği için kullanıcıları gizli bir risk altına sokar.

Etkilenen paketlerden bazıları önyükleme komut dosyasını kaldırmak için adımlar atmış olsa da slapos.core paketi güvenlik açığı bulunan kodu göndermeye devam ediyor. Ayrıca Tornado’nun geliştirme ve bakım sürümüne de dahildir.

Burada dikkate alınması gereken bir diğer önemli nokta da bootstrap betiğinin paket kurulumu sırasında otomatik olarak çalıştırılmaması ve Python 2’de yazılmış olmasıdır. Bu, betiğin Python 3 ile değişiklik yapılmadan çalıştırılamayacağı anlamına gelir. Ancak dosyanın yalnızca varlığı, geliştiricilerin önyükleme komut dosyasının yürütülmesini tetikleyen kodu çalıştırmaları için kandırılması durumunda saldırganların yararlanabileceği “gereksiz bir saldırı yüzeyi” bırakır.

Etki alanının ele geçirilmesi tehdidi teorik değildir. 2023 yılında, fsevents-binaries.s3-us-west-2.amazonaws adresinde barındırılan sahipsiz bir bulut kaynağının kontrolünü ele geçiren kötü bir aktör tarafından npm fsevents paketinin tehlikeye atıldığı ortaya çıktı.[.]com’un, paketin belirli sürümlerini yükleyen kullanıcılara kötü amaçlı yürütülebilir dosyalar göndermek için kullandığı (CVE-2023-45311, CVSS puanı: 9,8).

CIS Yapı Kitleri

Pezo, “Sorun, sabit kodlanmış bir alandan bir yükün alınmasını ve yürütülmesini içeren programlama modelinde yatıyor; bu, indirme davranışı sergileyen kötü amaçlı yazılımlarda yaygın olarak gözlemlenen bir modeldir.” dedi. “Distribute modülünün resmi olarak kullanımdan kaldırılmaması, savunmasız önyükleme komut dosyalarının oyalanmasına ve bilinmeyen sayıda projenin potansiyel bir saldırıya maruz kalmasına neden oldu.”

Açıklama, HelixGuard’ın PyPI’de OpenAI Vision kullanarak yazım hatalarını kontrol etmek için bir araç olduğunu iddia eden, ancak harici bir sunucuya bağlanmak ve bir sonraki aşama yükünü indirmek için tasarlanmış kötü amaçlı kod içeren ve daha sonra uzaktan erişim truva atını (RAT) çalıştıran “yazım denetleyicileri” adlı kötü amaçlı bir paket keşfetmesinin ardından geldi.

Leo636722 isimli kullanıcı tarafından ilk kez 15 Kasım 2025’te PyPI’ye yüklenen paket 955 kez indirildi. Artık indirilemiyor.

HelixGuard, “Bu RAT, uzaktan komutlar alabilir ve exec() aracılığıyla saldırgan tarafından kontrol edilen Python kodunu çalıştırabilir, bu da kurbanın ana bilgisayarı üzerinde tam uzaktan kontrole olanak tanır” dedi. “Kullanıcı kötü amaçlı paketi yükleyip çalıştırdığında, arka kapı etkinleşerek saldırganın kullanıcının bilgisayarını uzaktan kontrol etmesine olanak tanır.”



Source link