Siber Güvenlik
Pluto Security, Hugging Face’teki Load/Mine Kripto Madenciliği Kampanyasının Ayrıntılarını Açıkladı

Pluto Security’nin araştırma ekibi, 29 Ekim 2026’da Load/Mine raporunu yayımlayarak, Hugging Face’teki zararlı model depoları üzerinden dağıtılan bir kripto madenciliği ve arka kapı kampanyasını ortaya çıkardı. Raporda, yedi Hugging Face hesabına yayılmış 31 zararlı depo ve ModelScope’taki bir ayna depo sayılıyor; kampanyayla bağlantılı olarak 29.818 indirme kaydedilirken, bağlantılı 13 depo da hesaba katıldığında sayı 32.376’ya ulaşıyor. Pluto, bu rakamın doğrulanmış bulaşmaları ya da benzersiz mağdurları değil, indirme sayısını gösterdiğini belirtiyor.
Shaked Chen, Eitan Chassid ve Yotam Perkal’in kaleme aldığı rapora göre kampanya, ilk müdahaleden birkaç gün sonra yeniden ortaya çıktı: ikinci dalgadaki 19 depo 29.000’den fazla indirme kaydetti ve Pluto’nun bildiriminden sekiz gün sonra hâlâ yayındaydı. Rapora göre ilk dalgada kullanılan ödeme cüzdanına, zincir üstü madencilik gelirlerinden yaklaşık 2.276 PRL, yani yaklaşık 5.000 dolar aktarıldı.
Zararlı Kod Nasıl Çalışıyor?
Kampanya, zararlı ağırlıklardan değil, Transformers’ın belgelenmiş bir yükleme davranışından yararlanıyor. Bir depoyu trust_remote_code=True çağıranın yetkileriyle deponun Python kodunu içe aktarır; bu işlem, herhangi bir ağırlık yüklenmeden önce gerçekleşir. Deponun config.json şunu kullanır: auto_map yüklenecek Python modülünü ve sınıfını belirtmek için; Transformers, belirtilen dosyayı modül önbelleğine indirir ve exec_module() çağrısı, istenen model sınıfını döndürmeden önce dosyanın üst düzey kodunu çalıştırır. Raporda, bunun varsayılan bir ayar değil, belgelenmiş bir davranış olduğu ve Transformers güvenlik politikasının, söz konusu argüman kullanılırken kullanıcılara modelleme dosyalarının içeriğini doğrulamalarını söylediği belirtiliyor. Raporda ayrıca, vLLM’nin 0.10.1 sürümünden 0.14.0 sürümündeki düzeltmeye kadar olan sürümlerinin auto_map modüllerini, şu ayarı denetlemeden yüklediği trust_remote_code ve bunun zararlı bir deponun sunucu başlangıcında kod çalıştırmasına olanak tanıdığı CVE-2026-22807’ye de değiniliyor.
Keşif ve Hesaplar Arasındaki Bağlantı
Pluto, tüm .py tarafından belirtilen dosyaları kapsayan bir tarayıcı geliştirdi auto_map bir config.json, ayrıca model ağırlıklarının yanında bulunan Python dosyalarını da tarayarak şu tür örüntüleri işaretledi: subprocess, socket, ctypes, memfd_create ve Base64 çözme. İlk bulgu dsxk4mr8tq/qwen2-tiny-gpt2, adlı 305 satırlık bir dosya içeren modeling_evil.py; hesapta 12 Ekim 2026’da 2,5 saat içinde oluşturulmuş altı depo bulunuyordu.
Bağlantının izini sürmeyi sağlayan ipucu yedek dosyalardı. Söz konusu qwen2-tiny-lite depo şunları içeriyordu: modeling_evil.py.bak-src ve modeling_evil.py.bak-sync, aynı zararlı yazılımın daha eski sürümleriydi; bu sürümlerin indirme URL’leri geçici hesaba değil, hhzz667 Hugging Face’teki wssb123e ve ModelScope’taki depoya yöneliyordu. Rapora göre operatör, üretim kodunu bir test hesabına kopyaladı, ana dosyadaki URL’leri güncelledi ancak yedek dosyalardakileri değiştirmeyi unuttu. İlk dalgada, iki platformdaki üç hesaba yayılmış toplam 12 depo vardı; kaldırılmadan önce 700’den fazla indirme kaydedilmişti ve hiçbir güvenlik uyarısı verilmemişti.
Yükün Yapısı
Örnek bir derleme olarak MENXIANGYU/qwen2-tiny ele alındığında rapor, yükün önce şunu yazdığını belirtiyor: /tmp/.cch/svc.py; eksik madenciyi her 120 saniyede bir yeniden başlatan bir gözetmen; başlatma kancaları şu dosyalara ekleniyor: /root/.bashrc, /root/.profile ve kullanıcının .bashrc. Üç derlemede, 212.32.253.3 adresine 443 veya 9443 numaralı bağlantı noktalarından bağlanan ve her bağlantı kesilmesinden sonra yeniden deneyen bir ters kabuk da bulunuyor.
Madenci ikilisi, syscore.binaracılığıyla başlatılıyor memfd_create ve fexecve çekirdek iş parçacığı kılığına sokuluyor kworker/u20:1; böylece ilk çalıştırmada diskte çalıştırılabilir bir dosya yolu bırakılmıyor, ancak yedek kopya şurada kalıyor: /tmp/.cch/sync40,6 MB’lık ikili dosya, iki UPX! işaretçisi değiştirilerek UPX ile paketlenmiş PEK! ; bu nedenle standart açma aracı dosyayı reddediyor. Pluto, işaretçileri eski hâline getirip peakminer adlı madenciyi açtı; madenci, havuz uç noktaları ve şu giriş bilgisiyle başlatılıyordu: krxXJ2PKQW.workerİlerleme bildirimleri, yerel Xinference model kayıt defterine şu biçimde yazılıyor: qwen2-tiny- ardından Base32 durum kodları geliyor; yük ayrıca rakip madenci kayıtlarını kaldırıyor ve eşleşen süreçleri sonlandırıyor.
İki Dalga ve Müdahale Sonrası Uyarlama
Raporda ilk dalganın şu hesaptan kaynaklandığı belirtiliyor: hhzz667, 29 Nisan 2026’da oluşturulmuş ve beş ay boyunca etkinlik göstermemişti. Hesap, 21 Eylül 2026’da şunu yayımladı: qwen2-shell, 37 satırlık bir SSH arka kapısı; bu yazılım, şuraya bir ed25519 anahtarı yerleştiriyordu: authorized_keys ve Alibaba Cloud’da barındırılan bir sunucuya sinyal gönderiyordu. README dosyası, resmî Qwen2.5-0.5B model kartından kopyalanmıştı. Operatör, 22 Eylül’e kadar şunu yayımladı: qwen2-final, çekirdek iş parçacığı kılığına giren, rakip madencileri sonlandıran ve Xinference’a şu tür temiz adlar altında durum bildiren, 305 satırlık dosyasız bir madenci: Qwen2ConfigKod yorumları Basitleştirilmiş Çinceydi.
Pluto, ilk dalgayı Hugging Face ve ModelScope’a bildirdi ve hesaplar kaldırıldı. İkinci dalga birkaç gün içinde geldi: MENXIANGYU’nun 13 deposu da dahil olmak üzere beş hesaba yayılmış 19 depo; ayrıca wjsbg, soumikmahato, r1r13 ve 25 Ekim 2026’da oluşturulan son hesap htt0118. Bir depo, MENXIANGYU/qa-whl-1021, Pluto’nun açıklama e-postasından 8,5 saat sonra yayımlandı ve ana makine disklerini bağlayan, GPUStack’in /var/lib/gpustack dizinini hedef alan ve ana makinede root oturumu açılmasını sağlayan, konteynerden ana makineye kaçış betiğidir. Daha sonra devreye giren bir indirici, ikinci aşamayı kaynak IP adresine göre kısıtlıyor ve diğer istekte bulunanlara “static ip.” metnini içeren bir 403 yanıtı döndürüyor. Öne çıkan depo MENXIANGYU/qwen2-tiny 20 Ekim’deki 7.354 indirmeden 28 Ekim’de 28.412 indirmeye yükselerek ikinci dalgadaki indirmelerin %97,7’sini oluşturdu.
Madencilik Gelirleri ve Gözlemlenen Mağdurlar
İlk dalgadaki cüzdana 716 işlemde yaklaşık 2.276 PRL geldi ve buradan yaklaşık 2.241 PRL başka adreslere aktarıldı. Depoları kaldırıldıktan sonra da cüzdan, 21 Ekim’de herkese açık havuz panolarında etkin görünüyordu. Kryptex’te cüzdanın çevrimiçi görünen iki çalışanı olduğu bildiriliyor; peakminer/2.16.5 yaklaşık 1.008 PRL, yani yakalama sırasında 30 günlük ödüllerde yaklaşık 2.237 dolar. Analiz sırasında dizüstü bilgisayarları andıran adlara sahip dokuz çalışan, birbirlerinden 90 saniye içinde ağa katıldı ve yaklaşık altı dakika sonra paylaşım göndermeyi bıraktı. Rapora göre bu örüntü, ortak bir GPU kümesiyle tutarlı. Ayrı olarak izlenen hl aile, içe aktarma sırasında benzer biçimde kod çalıştırıyor ve MoneroOcean cüzdanında yaklaşık bir ayda ödenen yaklaşık 26 dolarla birlikte 13 çalışan gösteriyordu.
Tarayıcı Kapsamındaki Açık
İlk dalgadaki 12 deponun hiçbiri işaretlenmedi ve ikinci dalganın öne çıkan yükü modeling_evil2.py çalıştırılan tüm tarayıcılardan “güvenli” sonucu aldı; Pluto’nun kontrollerine göre JFrog, bunun bir makine öğrenmesi modeli olmadığını bildirdi. Hugging Face’in kötü amaçlı yazılım tarama belgelerinde, 2 GB’tan küçük her depo dosyasının her commit sırasında kötü amaçlı yazılım tarayıcısından geçirildiği belirtiliyor. Pickle tarama belgelerinde ise tarayıcının ClamAV antivirüs taramaları ve pickle içe aktarma taramaları yaptığı; ClamAV’ın pickle açıklarını kapsamadığı ve taramanın “kusursuz olmadığı”, güvenliği kontrol etme sorumluluğunun kullanıcıya ait olduğu ifade ediliyor. Pluto, şu dosyaların incelenmesinin .py dosyalarını, bir auto_map işaret konmadan önce gösterdiği her yükü kampanyadaki tüm yükleri yakalayacağını ve yükleme sırasında yapılacak statik bir kontrolün subprocess, socket, ctypes içindeki ham IP çağrılarını veya auto_mapbaşvurusu yapılan dosyaları daha erken yakalayacağını belirtiyor.
Atıf Değerlendirmesi ve Önerilen Adımlar
Pluto, bunun finansal kazanç amacı güden, Çince konuşan bir operatör ya da küçük bir grup olduğunu değerlendiriyor. Bu değerlendirmede Basitleştirilmiş Çince kod yorumlarına, Alibaba Cloud’da bulunan bir komuta ve kontrol sunucusuna, ModelScope ve hf-mirror.com’da ayna kopyaların yayımlanmasına, Xinference ve Tencent Cloud’un var olduğunu varsayan hedeflemeye ve 18:38 ile 21:19 UTC arasındaki faaliyet kümelenmesine dayanıyor. Rapora göre soumikmahato’nun “parasit” derlemesinde Endonezce kod yorumları bulunması, aynı alanda çalışan ikinci bir operatörle ya da kasıtlı olarak farklı görünen bir yöntem kullanan tek bir operatörle uyumlu.
Raporda, özel kod çalıştırma etkin durumdayken listelenen modellerden herhangi birini yükleyen kişilere, ana makinelerinde şu unsurları kontrol etmeleri öneriliyor: /tmp/.cch/, beklenmedik svc.py işlemler, madencilik bağımsız değişkenleri taşıyan bir kworker/u20:1 işlem, kodlanmış qwen2-tiny- veya ezv- Xinference kayıtları ve listelenen sunucularla havuzlara yönelik bağlantılar. Pluto; etkilenen makinelerin ağdan yalıtılmasını, kanıtların korunmasını, tüm kalıcılık yollarının kaldırılmasını, açığa çıkan kimlik bilgilerinin temiz bir makineden değiştirilmesini, ana makinenin bütünlüğü doğrulanamıyorsa güvenilir bir imajdan yeniden kurulum yapılmasını, Xinference API’sinde kimlik doğrulamasının zorunlu tutulmasını ve incelenmiş model sürümlerinin sabitlenmesini öneriyor. Pluto, bu türden daha fazla kampanya beklediğini ve bunları takip ettiğini söylüyor.












