NPM’de 1 Milyon İndirmeye Sahip Paketlere Truva Atı Bulaştırıldı
ABD merkezli Gluestack tarafından geliştirilen ve NPM üzerinden yayınlanan popüler React Native kütüphaneleri, zararlı yazılım içeren bir saldırıyla karşı karşıya kaldı. Bu saldırı, toplamda 1 milyonu aşan haftalık indirme sayısına sahip 17 farklı paketin kötü amaçlı yazılımla güncellenmesiyle gerçekleşti.
Yaygın Kullanılan Paketler Üzerinden Saldırı Gerçekleştirildi
Siber güvenlik firması Aikido Security tarafından tespit edilen saldırı, 6 haziran günü saat 16.33’te @react-native-aria/focus paketinin yeni sürümünün yayınlanmasıyla başladı. Saldırganlar, toplamda 17 farklı Gluestack paketine uzaktan erişim sağlayan bir truva atı yerleştirdi. Kodlar, lib/index.js dosyasının sonuna gizli şekilde eklendi ve yüzlerce boşluk karakteriyle kamufle edildi.

Aikido’nun paylaştığı listeye göre saldırıya uğrayan paketler arasında haftalık 125.000 kez indirilen @react-native-aria/interactions, 120.000 kez indirilen @react-native-aria/utils ve 100.000 kez indirilen @react-native-aria/focus gibi kütüphaneler yer alıyor. Toplamda haftalık 1.020.000 kez indirilen bu paketler, React Native projelerinde sıkça kullanılıyor. Saldırıya uğrayan paketler şu şekilde paylaşıldı:
| Paket Adı | Sürüm | Haftalık İndirme Sayısı |
|---|---|---|
| @react-native-aria/button | 0.2.11 | 51.000 |
| @react-native-aria/checkbox | 0.2.11 | 81.000 |
| @react-native-aria/combobox | 0.2.10 | 51.000 |
| @react-native-aria/disclosure | 0.2.9 | 3 |
| @react-native-aria/focus | 0.2.10 | 100.000 |
| @react-native-aria/interactions | 0.2.17 | 125.000 |
| @react-native-aria/listbox | 0.2.10 | 51.000 |
| @react-native-aria/menu | 0.2.16 | 22.000 |
| @react-native-aria/overlays | 0.3.16 | 96.000 |
| @react-native-aria/radio | 0.2.14 | 78.000 |
| @react-native-aria/switch | 0.2.5 | 477 |
| @react-native-aria/toggle | 0.2.12 | 81.000 |
| @react-native-aria/utils | 0.2.13 | 120.000 |
| @gluestack-ui/utils | 0.1.17 | 55.000 |
| @react-native-aria/separator | 0.2.7 | 65 |
| @react-native-aria/slider | 0.2.13 | 51.000 |
| @react-native-aria/tabs | 0.2.14 | 70.000 |
Paketlere eklenen zararlı kod, saldırganın komut ve kontrol sunucusuna bağlanarak uzaktan komut alıyor. Kod, çalıştığında saldırganın belirlediği şu komutları uygulayabiliyor:
cd: Dizin değiştiriyorss_upf: Belirli bir dosyayı yüklüyorss_upd: Bir dizindeki tüm dosyaları karşı sunucuya aktarıyorss_stop: Yükleme işlemini durduruyor- Diğer tüm komutlar ise sistemde kabuk komutu olarak çalıştırılıyor
Ayrıca truva atı, Windows PATH ortam değişkenini manipüle ederek Python ya da pip komutlarını kendi kötü amaçlı sürümleriyle değiştiriyor.
Saldırıların tespit edilmesinin ardından Aikido, Gluestack projelerinde GitHub sorunları açarak geliştiricileri bilgilendirdi ancak uzun süre herhangi bir yanıt alınamadı. Daha sonra Gluestack, saldırıda kullanılan erişim anahtarını iptal etti ve tehlikeli sürümleri NPM üzerinde “deprectated” olarak işaretledi.

Geliştiriciler, zararlı kod içeren sürümleri silmenin bağımlılıklar nedeniyle mümkün olmadığını belirtti. Bu nedenle güvenli olduğu bilinen eski sürümlere yönlendirme yapıldı.
Türkiye’deki yazılım geliştiricilerin de aktif olarak kullandığı bu kütüphaneler, projelerde doğrudan güvenlik açığına neden olabilir. Özellikle @react-native-aria ailesindeki paketleri kullanan geliştiricilerin, bağımlılıklarını gözden geçirip güvenli sürümleri tercih etmeleri büyük önem taşıyor.
Aikido Security, bu saldırının daha önce NPM üzerinde tespit edilen biatec-avm-gas-station, cputil-node, lfwfinance/sdk ve lfwfinance/sdk-dev gibi paketlere yapılan saldırılarla benzerlik taşıdığını ve aynı tehdit aktörleri tarafından gerçekleştirilmiş olabileceğini belirtiyor.










