TL;DR (Çok Uzun, Okumadım)
30-31 Mart 2026 tarihlerinde, axios'un 1.14.1 ve 0.30.4 sürümleri, npm üzerinde enfekte makinelerde uzaktan erişim truva atı (RAT) bırakan kötü amaçlı bir bağımlılıkla ele geçirildi. Her iki sürüm de yayından kaldırıldı. Güvenli sürüm 1.14.0'dır. Eğer axios@1.14.1 veya 0.30.4'ü yüklediyseniz, makineyi ele geçirilmiş kabul edin ve tüm kimlik bilgilerini derhal değiştirin.
Axios Nedir ve Neden Önemlidir?
Axios, npm üzerinde haftalık 100 milyon indirmeye sahiptir. Sayısız frontend çerçevesinde, backend Node.js hizmetlerinde ve kurumsal uygulamalarda HTTP istemcisidir. Bu kadar temel bir paketin ele geçirilmesi durumunda, etki alanı muazzamdır — 30-31 Mart'ta kısa bir zaman aralığında npm install komutunu çalıştıran geliştiriciler, farkında olmadan makinelerine kötü amaçlı yazılım indirmişlerdir.
Bu varsayımsal bir tedarik zinciri riski değildir. Gerçekleşti, doğrulandı ve yük ciddiydi: rastgele komutlar çalıştırabilen, sistem verilerini sızdırabilen ve enfekte makinelerde kalıcı olabilen çok aşamalı bir uzaktan erişim truva atı.
Ekibiniz axios kullanıyorsa ve HTTP istemci entegrasyonlarınızı tasarlamak ve test etmek için Apidog kullanıyorsanız, bir sonraki dağıtımınızdan önce bunu okuyun.
Saldırının Zaman Çizelgesi
30 Mart 2026 — 23:59:12 UTC: nrwise@proton.me kullanan bir hesap tarafından npm'e plain-crypto-js@4.2.1 adında kötü amaçlı bir paket yayınlanır. Daha önceki temiz bir sürüm (4.2.0), 18 saat önce meşru crypto-js kütüphanesinin ikna edici bir yazım hatası olarak yayınlanmıştı.
31 Mart 2026 — 00:05:41 UTC: Socket'in otomatik kötü amaçlı yazılım tespiti, yayınlanmasından altı dakika sonra plain-crypto-js@4.2.1'i kötü amaçlı olarak işaretler.
31 Mart 2026 — gece yarısından kısa bir süre sonra: axios@1.14.1, plain-crypto-js@4.2.1'i bağımlılık olarak çekerek npm'e yayınlanır. Sürüm, axios GitHub deposunun resmi etiketlerinde görünmez. En son meşru etiket v1.14.0 olarak kalır.
31 Mart 2026 — sabah: Hem axios@1.14.1 hem de axios@0.30.4'ün ele geçirildiğini bildiren #10604 numaralı GitHub sorunu herkese açık olarak açılır. Axios bakımcıları, başlangıçta saldırganın erişimini iptal edemediklerini doğrular — ele geçirilmiş hesap, meşru bakımcılardan daha yüksek npm izinlerine sahiptir.
31 Mart 2026: Hem axios@1.14.1 hem de axios@0.30.4, npm'den yayından kaldırılır. Axios bakımcıları, belirteçleri iptal etmeye, yayın kontrollerini sıkılaştırmaya ve yetkisiz yayın erişimi elde etmek için uzun süreli bir npm belirtecinin nasıl kullanıldığını araştırmaya başlar.
Saldırı Nasıl Gerçekleşti?
Saldırı, axios'un yayınlama iş akışındaki bir boşluğu kullandı: güvenilir yayınlama ile birlikte kullanılan uzun ömürlü bir npm belirteci. Saldırgan — muhtemelen bir bakımcının kimlik bilgilerini ele geçirdikten sonra — bu belirteci normal yayın sürecinin dışında yeni bir sürüm yayınlamak için kullandı.
Yeni sürüm, plain-crypto-js@4.2.1'i bağımlılık olarak tanıttı. Paket adı, meşru bir kriptografi yardımcı programı gibi görünmek üzere tasarlanmıştı; önceki temiz 4.2.0 sürümü, şüpheyi azaltmak için kısa bir geçmiş oluşturdu.
plain-crypto-js@4.2.1 içinde, Socket'in analizi çok aşamalı bir yük buldu:
- Aşama 1 — Çalıştırma: Paket, yükleme sırasında (npm yaşam döngüsü komut dosyaları aracılığıyla) ikincil bir yük bırakmak için kod çalıştırır.
- Aşama 2 — RAT dağıtımı: Yük, kalıcı bir arka kapı açan bir uzaktan erişim truva atı (RAT) kurar.
- Aşama 3 — Sızdırma: RAT, bir C2 sunucusundan gönderilen rastgele kabuk komutlarını çalıştırabilir, dosya sisteminden ortam değişkenlerini ve sırları okuyabilir ve sistem verilerini ağ üzerinden dışarı gönderebilir.
RAT, yeniden başlatmalar arasında kalıcıdır, yani ele geçirilmiş sürümü yükleyen makineler, RAT açıkça avlanıp kaldırılmadıkça, npm paketi kaldırıldıktan sonra bile risk altında kalmaya devam eder.
Etkilendim mi?
Şu durumlarda potansiyel olarak etkilendiniz:
- Yaklaşık 30 Mart 23:59 UTC ile 31 Mart 2026 öğlen UTC arasında
npm install axiosveyanpm install(package.jsoniçinde axios ile) çalıştırdınız. node_modules/axios/package.jsondosyanız1.14.1veya0.30.4sürümünü gösteriyor.package-lock.jsonveyayarn.lockdosyanız axios'u1.14.1veya0.30.4olarak çözümlüyor.
Hemen kontrol edin:
# Yüklü sürümü kontrol edin
npm list axios
# Kilit dosyasını kontrol edin
grep '"axios"' package-lock.json | head -5
# plain-crypto-js varlığını kontrol edin
npm list plain-crypto-js
ls node_modules/plain-crypto-js 2>/dev/null && echo "INFECTED" || echo "Bulunamadı"
Eğer plain-crypto-js, node_modules içinde mevcutsa, kötü amaçlı sürümü çalıştırdınız demektir.
Şu Anda Ne Yapmalı?
1. Axios'u Hemen Güncelleyin
npm install axios@1.14.0
# veya en son güvenli sürüme sabitleyin
npm install axios@latest
Doğrulayın:
npm list axios
# 1.14.0 veya daha yüksek olmalı (temiz bir 1.14.x yayınlandığında)
2. Eğer Ele Geçirilmiş Sürümü Kurduysanız
Bunu rutin bir bağımlılık güncellemesi olarak görmeyin. Makineyi ele geçirilmiş olarak kabul edin:
- O makineden erişilebilen tüm sırları değiştirin: API anahtarları, veritabanı kimlik bilgileri, SSH anahtarları, bulut sağlayıcı belirteçleri,
.envdeğişkenleri. - Ortam değişkenlerinizi kontrol edin — RAT, özellikle işlem ortamındaki ve dosya sistemindeki sırları hedef alır.
- Etkilenen dönemdeki giden ağ bağlantılarını denetleyin — bilinmeyen IP'lere yapılan bağlantıları arayın.
- Kalıcılık için tarama yapın — ele geçirme penceresi civarında eklenen cron işlerini, başlangıç komut dosyalarını ve systemd hizmetlerini kontrol edin.
- Eğer ele geçirilmiş sürümün yüklü olduğu bir CI çalıştırıcısı veya üretim sunucusuysa, makineyi yeniden imajlayın. Bir geliştirici dizüstü bilgisayarıysa, kimlik bilgilerini yanmış kabul edin ve temiz olduğunu düşünmeden önce her şeyi değiştirin.
3. CI/CD Boru Hatlarınızı Denetleyin
Eğer derleme boru hattınız bu zaman aralığında npm install çalıştırdıysa, CI ortamınız ele geçirilmiş olabilir. Kontrol edin:
# Etkilenen zaman dilimi için derleme günlüklerini kontrol edin
# Herhangi bir yükleme çıktısında axios@1.14.1'i arayın
# Mevcut CI node_modules'lerinin temiz olduğunu doğrulayın
npm list axios plain-crypto-js
CI boru hattınızın erişebildiği tüm sırları değiştirin: dağıtım anahtarları, bulut sağlayıcı kimlik bilgileri, kayıt defteri belirteçleri.
4. Kilit Dosyanızı Doğrulayın
Kilit dosyaları (package-lock.json, yarn.lock) tam sürümleri sabitlemelidir. Eğer kilit dosyanızda 1.14.1 varsa, yeniden oluşturun:
# Kaldırın ve yeniden oluşturun
rm package-lock.json
npm install
Taahhüt etmeden önce yeni kilit dosyasının axios'u güvenli bir sürüme çözümlediğini kontrol edin.
Axios API Çağrılarınızı Denetlemek İçin Apidog Kullanımı
API çağrılarınız için HTTP istemciniz olarak axios kullanıyorsanız, Apidog bağımlılık güncellemesinden sonra entegrasyonunuzun hala doğru istekleri gönderdiğini doğrulamanıza yardımcı olabilir.
axios@1.14.0'a güncelledikten sonra, mevcut API uç noktalarınızı Apidog'a aktarın ve davranışın değişmediğini doğrulamak için hızlı bir regresyon kontrolü çalıştırın. Bu, özellikle kötü amaçlı sürümün istek veya yanıt yüklerini kurcalamış olabileceği konusunda endişeleniyorsanız kullanışlıdır — Apidog'un yanıt onaylamaları, tam alan değerlerini, başlıkları ve durum kodlarını doğrulamanıza olanak tanır:
// Apidog yanıt sonrası onayı
pm.test("Yanıt temiz — enjekte edilmiş alan yok", () => {
const body = pm.response.json();
pm.expect(body).to.not.have.property('__injected');
pm.expect(pm.response.headers.get('X-Injected-Header')).to.be.null;
});
Apidog'da güncellenmiş axios sürümüne karşı tam test paketini çalıştırmak, üretime geçmeden önce size belgelenmiş temiz bir temel sunar.
Apidog'u ücretsiz deneyin HTTP istemci regresyon testlerini kurmak için.
npm'deki Tedarik Zinciri Saldırılarını Durdurmak Neden Zor?
Axios saldırısı bir anormallik değil. Bu bir kalıp:
- event-stream (2018): Kötü niyetli bir bakımcı, bitcoin cüzdanlarını hedef alan bir yük ekledi. Haftalık 8 milyon indirme.
- ua-parser-js (2021): Bir kripto madencisi ve şifre hırsızı bırakmak için ele geçirildi.
- node-ipc (2022): Bakımcı kasıtlı olarak Rus/Beyaz Rus IP'lerini hedef alan yıkıcı kod ekledi.
- xz utils (2024): Temel bir Linux sıkıştırma kütüphanesini arka kapılamak için iki yıllık bir sosyal mühendislik kampanyası.
- axios (2026): Kötü amaçlı bir bağımlılık aracılığıyla bir RAT yayınlamak için ele geçirilmiş bakımcı kimlik bilgileri kullanıldı.
Ortak nokta: koda değil, yayıncı hesabına güven. npm'in modeli bakımcılara yayınlama erişimi verir ve bir bakımcının kimlik bilgileri ele geçirilirse, saldırgan bu güveni miras alır.
Gerçekten yardımcı olan hafifletmeler:
| Önlem | Ne İşe Yarar |
|---|---|
Kilit dosyaları (package-lock.json) |
Tam sürümleri sabitler, sessiz yükseltmeleri önler |
CI'da npm audit |
Dağıtımdan önce bilinen güvenlik açıklarını işaretler |
| Socket.dev / Snyk | Davranışsal analiz — CVE'ler mevcut olmadan bile şüpheli paketleri işaretler |
| npm'de İki faktörlü kimlik doğrulama | Kimlik bilgilerinin ele geçirilmesini zorlaştırır |
Kısa ömürlü belirteçlerle npm publish |
Bir belirteç sızarsa maruz kalma süresini sınırlar |
| PR'lerde kilit dosyalarını okuyun | Kod incelemesinde beklenmeyen bağımlılık değişikliklerini yakalayın |
Axios ekibi, o zamandan beri uzun ömürlü npm belirteçlerinin sorunun bir parçası olduğunu kabul etti ve daha sıkı yayın kontrollerine geçiyor. Ancak çözümün sadece bireysel paketlerden değil, ekosistemden gelmesi gerekiyor.
Ele Geçirme Göstergeleri (IOC'ler)
Socket'in analizine göre:
- Kötü amaçlı paketler:
plain-crypto-js@4.2.1,axios@1.14.1,axios@0.30.4 - Yayıncı e-postası:
nrwise@proton.me - Davranış: npm yükleme zamanında ağ bağlantıları, RAT kalıcılığı, ortam değişkeni sızdırma
- Güvenli axios sürümleri: 1.14.0 ve altı (0.30.4 hariç), 1.13.x, 1.12.x
Eğer enfeksiyondan şüpheleniyorsanız, security@npmjs.com adresinden npm güvenliğine bir rapor gönderin ve günlükleri saklayın.
Sonuç
axios 1.14.1'in ele geçirilmesi, bağımlılık güvenliğinin tek seferlik bir denetim olmadığını — sürekli bir süreç olduğunu hatırlatıyor. Sürümlerinizi kilitleyin, CI'ınızda Socket gibi davranışsal analiz araçları çalıştırın, bir şeyler ters gittiğinde kimlik bilgilerini değiştirin ve kod incelemenizde kilit dosyalarınızı gözden geçirmeye devam edin.
axios'u güncelledikten sonra API entegrasyonunuza olan güveni yeniden inşa etmeniz gerekiyorsa, Apidog, göndermeden önce HTTP istemci davranışınızı doğrulamak için test senaryoları, onaylamalar ve alay araçları sunar.
Sıkça Sorulan Sorular
Hangi axios sürümleri ele geçirildi?axios@1.14.1 ve axios@0.30.4. Her ikisi de npm'den yayından kaldırıldı. Güvenli sürüm 1.14.0'dır (veya 1.13.x, 1.12.x serilerindeki herhangi bir sürüm).
Kötü amaçlı axios yükü ne yapıyor?plain-crypto-js@4.2.1'i çekiyor ve bu da uzaktan erişim truva atı (RAT) içeren çok aşamalı bir yük dağıtıyor. RAT, uzaktaki bir C2 sunucusundan rastgele komutlar çalıştırabilir, ortam değişkenlerini ve sırları sızdırabilir ve yeniden başlatmalar arasında kalıcı olabilir.
Ele geçirilmiş sürümü kurup kurmadığımı nasıl anlarım?npm list axios komutunu çalıştırın — eğer 1.14.1 veya 0.30.4 gösteriyorsa, etkilendiniz. Ayrıca npm list plain-crypto-js komutunu kontrol edin — eğer bu paket mevcutsa, kötü amaçlı kod makinenizde çalışmıştır.
Sadece axios'u güncellemek yeterli mi?Hayır. Güncelleme, kötü amaçlı bağımlılığı ileride kaldırır, ancak RAT makineye zaten kurulmuş ve kalıcı olmuş olabilir. Eğer ele geçirilmiş sürümü kurduysanız, tüm sırları değiştirin ve makineyi kalıcılık mekanizmaları açısından denetleyin.
Saldırgan bir bakımcı olmadan npm'e nasıl yayın yapabildi?Saldırgan muhtemelen bir bakımcının kimlik bilgilerini ele geçirdi ve yayın erişimi olan uzun ömürlü bir npm belirtecini kullandı. Axios ekibi araştırıyor ve yayın kontrollerini sıkılaştırıyor.
Bu, normal bir güvenlik açığından ne farkı var?Bir güvenlik açığı, meşru koddaki bir kusurdur. Bir tedarik zinciri saldırısı, güvenilir bir yayın kanalı aracılığıyla kötü amaçlı kod tanıtır. Ele geçirilmiş kod asla axios GitHub deposunda değildi — doğrudan npm yayınına enjekte edildi.
Projelerimi gelecekteki tedarik zinciri saldırılarından nasıl koruyabilirim?Kilit dosyaları kullanın, CI'da npm audit çalıştırın, davranışsal analiz için Socket.dev gibi bir araç ekleyin, npm hesaplarında 2FA'yı etkinleştirin, kısa ömürlü yayın belirteçleri kullanın ve kod incelemesinde kilit dosya farklarınızı denetleyin.
