Saldırganlar, popüler Rust paketi arrayref ile ilişkili bir bakım hesabını kullanarak, projelerin derlenmesi sırasında geliştiricilerin cihazlarında zararlı yazılım çalıştıran kötü amaçlı bir sürüm yayımladı. 23 dakikayı aşmayan bir zaman aralığında operasyon, append-only-vec ve internment paketlerini de etkileyerek bir yazılım tedarik zinciri saldırısına dönüştü.
StepSecurity, etkilenen sürümlerin arrayref 0.3.10, append-only-vec 0.1.9 ve internment 0.8.7 olduğunu bildirdi; üç paket de aynı hesap tarafından yönetiliyordu. arrayref geniş çapta kullanılıyor; son 90 günde 53 milyondan fazla, toplamda ise 245 milyondan fazla indirme kaydetti. Paket; şifreleme, grafik ve Rust grafik arayüzleriyle ilişkili proje ve araçların yanı sıra Ethereum ve Solana ekosistemlerinde kullanılan bileşenlerde yer alıyor.
Saldırı nasıl gerçekleştirildi?
Saldırganlar, bilinen proc-macro2 paketinin adını taklit eden proc-macro1 adlı bir pakete bağımlılık ekledi. Orijinal paketlerin kaynak kodunun büyük bölümü değiştirilmeden bırakıldı; bu da yalnızca yazılım farklılıklarını inceleyen kişiler için kurcalamayı tespit etmeyi zorlaştırıyor.
proc-macro1, derleme sırasında otomatik olarak çalıştırılan bir build.rs dosyası içeriyordu. Dosya, kötü amaçlı yapının bileşenlerini Base64 kodlamasıyla şifrelenmiş parçalardan yeniden oluşturuyor, ardından işletim sistemine uygun bir yük seçiyordu; bunlar arasında x86-64 ve ARM64 mimarileri için Linux, Windows ve macOS da bulunuyordu. Unix üzerinde yük /tmp/rust-setup konumuna yazılıyor ve ayrı bir işlem olarak çalıştırılıyordu. Windows saldırısında ise TEMP klasörü içinde rust-setup.ps1 adlı bir dosya oluşturuluyor, işlemi çalışır durumda tutmak için wscript.exe ve VBS biçiminde bir çalıştırıcı kullanılıyordu.
Yazılım neleri çalabilir?
Wiz'in analizine göre ikinci aşama, ana bilgisayar ve kimlik bilgileri hakkında bilgi topluyor. Yazılım, Google Chrome, Brave ve Edge tarayıcılarına ait SQLite veritabanlarından oturum açma bilgilerini çıkarıyor. Ayrıca Windows'ta Registry Run, macOS'ta LaunchAgent ve Linux'ta systemd aracılığıyla kalıcılık mekanizmaları oluşturuyor. Yük, bir adresi parametre olarak alıyor; bunun komuta ve kontrol sunucusunun adresi olduğuna inanılıyor.
Zaman çizelgesi ve bunun geliştiriciler açısından anlamı
Kampanya, 20 Ağustos 2026'da 01:17 UTC'de, önde gelen Rust geliştiricisi David Tolnay'ın kimliğini taklit eden bir GitHub hesabı ve ardından crates.io'da benzer bir hesap oluşturulmasıyla başladı. 01:55'te proc-macro1'in temiz bir sürümü yayımlandı; bunu 07:11'de kötü amaçlı 1.0.107 sürümü izledi. Dört dakika sonra, David Roundy ile ilişkili meşru droundy hesabı üzerinden arrayref 0.3.10 yayımlandı ve 0.3.5 ile 0.3.9 arasındaki sürümler kaldırıldı; bu durum yükleme araçlarını kötü amaçlı sürümü seçmeye yönlendirebilir.
Olay 07:54'te bildirildi. crates.io, proc-macro1 paketini 08:03'te sildi ve arrayref 0.3.10'u 08:41'de dizinden kaldırdı. aovine, arone, aronenao ve tinymember adlı diğer paketlerin kötü amaçlı sürümleri de kaldırıldı.
Müdahale adımları
Maruz kalma süresi yaklaşık bir buçuk saat olan pencere sırasında etkilenen sürümleri yükleyen kişiler, ortamın ele geçirildiğini varsaymalıdır. İnceleme kapsamında Cargo.lock dosyalarında şüpheli sürümlerin aranması, bırakılan dosyaların doğrulanması ve 23.254.165[.]112 adresine 9089 ve 443 numaralı portlar üzerinden yapılan bağlantıların incelenmesi yer alıyor. Ele geçirmenin doğrulanması hâlinde analizler, tüm kimlik bilgilerinin, CI belirteçlerinin, imzalama anahtarlarının ve diğer sırların döndürülmesini, ardından ortamın güvenilir yedeklerden yeniden oluşturulmasını öneriyor. Etkilenmeyen projeler ise bakım hesaplarının durumu netleşene kadar güvenli olduğu bilinen bir sürümü sabitlemelidir.