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 sahip, hem frontend çerçevelerde hem de Node.js tabanlı backend servislerde yaygın olarak kullanılan bir HTTP istemcisidir. Temel bir paketin ele geçirilmesi, çok sayıda projeyi ve makineyi riske atar. 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ş oldu.
Bu, gerçek bir tedarik zinciri saldırısıdır: rastgele komut çalıştırabilen, sistem verilerini sızdırabilen ve kalıcı olabilen çok aşamalı bir uzaktan erişim truva atı (RAT) içerir.
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 bu rehberi uygulayın.
Saldırının Zaman Çizelgesi
30 Mart 2026 — 23:59:12 UTC:
nrwise@proton.me hesabı, npm'e plain-crypto-js@4.2.1 adlı kötü amaçlı paketi yayınladı. Öncesinde 4.2.0 sürümü, meşru crypto-js'in yazım hatası gibi görünecek şekilde eklenmişti.
31 Mart 2026 — 00:05:41 UTC:
Socket otomatik tespiti, paketi 6 dakika içinde kötü amaçlı olarak işaretledi.
31 Mart 2026 — gece yarısından kısa süre sonra:
axios@1.14.1, kötü amaçlı plain-crypto-js@4.2.1'i bağımlılık olarak çekerek npm'e yüklendi. GitHub etiketlerinde bu sürüm görünmüyor; en son meşru sürüm v1.14.0.
31 Mart 2026 — sabah:
axios@1.14.1 ve axios@0.30.4'ün ele geçirildiği #10604 numaralı GitHub sorusu açıldı. Saldırgan, npm üzerinde bakımcılardan daha yüksek yetkilere sahipti.
31 Mart 2026:
Her iki kötü amaçlı sürüm npm'den kaldırıldı. Axios ekibi, belirteçleri iptal etti, yayın kontrollerini sıkılaştırdı, ve erişim sızıntısını inceledi.
Saldırı Nasıl Gerçekleşti?
Saldırı, axios'un yayın iş akışındaki uzun ömürlü npm belirteçlerini kullandı. Saldırgan, bir bakımcının kimlik bilgilerini ele geçirerek, yeni bir sürüm yayınladı ve bu sürümde kötü amaçlı plain-crypto-js@4.2.1 bağımlı olarak eklendi.
plain-crypto-js@4.2.1 içinde üç aşamalı bir yük vardı:
- Çalıştırma: Yükleme sırasında kod çalıştırılarak ikincil bir yük bırakıldı.
- RAT Dağıtımı: Kalıcı bir arka kapı (RAT) kuruldu.
- Sızdırma: RAT, C2 sunucusundan komut aldı, ortam değişkenlerini ve sırları sızdırdı, sistem verilerini dışarı gönderdi.
Bu RAT, makinede kalıcı kalır; npm paketini kaldırmak yeterli değildir.
Etkilendim mi?
Aşağıdaki durumlarda etkilenmiş olabilirsiniz:
-
30 Mart 23:59 UTC ile 31 Mart 2026 öğlen UTC arasında
npm install axiosveya projenizde axios bulunan birnpm installçalıştırdınız. -
node_modules/axios/package.jsondosyanızda sürüm olarak 1.14.1 veya 0.30.4 görünüyor. -
package-lock.jsonveyayarn.lockdosyanızda axios çözümü 1.14.1 veya 0.30.4.
Hızlı Kontrol İçin:
# 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ı"
plain-crypto-js node_modules içinde varsa, kötü amaçlı sürümü çalıştırmışsı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ğrulama için:
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
Bu bir bağımlılık güncellemesi değildir; makineyi ele geçirilmiş kabul edin:
- O makineden erişilebilen tüm sırları değiştirin (API anahtarları, DB şifreleri, SSH anahtarları, bulut belirteçleri,
.envdeğişkenleri). - Ortam değişkenlerinizi kontrol edin — RAT özellikle burada sır arar.
- Giden ağ bağlantılarını denetleyin — şüpheli IP'leri arayın.
- Kalıcılık için tarama yapın — yeni cron işleri, başlangıç komut dosyaları, systemd servisleri vb.
- Eğer CI runner veya prod makinesi ise yeniden imajlayın. Geliştirici makinesinde ise tüm kimlik bilgilerinizi değiştirin.
3. CI/CD Boru Hatlarınızı Denetleyin
Derleme pipeline'ınız bu dönemde npm install çalıştırdıysa, CI ortamınız da enfekte olabilir.
# Etkilenen zaman dilimi için build loglarını kontrol edin
# Yükleme çıktılarında axios@1.14.1 var mı bakın
# CI node_modules'lerinin temizliğini kontrol edin
npm list axios plain-crypto-js
CI ortamında erişilebilen tüm sırları değiştirin.
4. Kilit Dosyanızı Doğrulayın
Kilit dosyaları (package-lock.json, yarn.lock) tam sürümleri gösterir. Eğer kilit dosyanızda 1.14.1 varsa, yeniden oluşturun:
rm package-lock.json
npm install
Yeni kilit dosyasının güvenli sürüme çözümlendiğinden emin olun.
Axios API Çağrılarınızı Denetlemek İçin Apidog Kullanımı
Axios ile API çağrıları yapıyorsanız, Apidog ile bağımlılık güncellemesinden sonra entegrasyonunuzu hızlıca doğrulayabilirsiniz.
-
axios@1.14.0'a güncelledikten sonra mevcut API uç noktalarınızı Apidog'a aktarın. - Hızlı regresyon testiyle istek/yanıt davranışında değişiklik olup olmadığını kontrol edin.
Özellikle kötü amaçlı sürümün istek/yanıtları manipüle etmiş olma ihtimaline karşı, Apidog ile yanıt alanlarını ve başlıklarını doğrulayabilirsiniz:
// 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 ile tam test paketi koşturmak, üretime geçmeden önce temiz bir temel oluşturur.
Apidog'u ücretsiz deneyin HTTP istemci regresyon testlerinizi kurmak için.
npm'deki Tedarik Zinciri Saldırılarını Durdurmak Neden Zor?
Axios saldırısı tekil bir olay değil; npm ekosisteminde bir kalıp:
- event-stream (2018): Bitcoin cüzdanlarını hedefleyen yük. Haftalık 8M+ indirme.
- ua-parser-js (2021): Kripto madenci ve şifre hırsızı.
- node-ipc (2022): Spesifik IP'leri hedefleyen yıkıcı kod.
- xz utils (2024): İki yıl süren sosyal mühendislik sonucu arka kapı.
- axios (2026): Ele geçirilen bakımcı hesabı üzerinden RAT yayılımı.
Ortak nokta: yayıncı hesabına güven. Bir bakımcının kimlik bilgisi ele geçirilirse, saldırgan tüm dağıtım zincirine sızabilir.
Gerçekten Yardımcı Olan Önlemler
| Önlem | Ne İşe Yarar |
|---|---|
| Kilit dosyaları (package-lock.json) | Sürüm 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’siz şüpheli paketleri tespit eder |
| npm’de 2FA | Kimlik bilgilerinin ele geçirilmesini zorlaştırır |
Kısa ömürlü belirteçlerle npm publish
|
Belirteç sızarsa maruz kalma süresini sınırlar |
| PR’lerde kilit dosyalarını okuyun | Kod incelemede beklenmeyen bağımlılık değişikliklerini yakalar |
Axios ekibi uzun ömürlü npm belirteçlerinin riskini kabul etti ve yayın sürecini sıkılaştırdı. Ancak asıl çözüm ekosistem kaynaklı olmalı.
Ele Geçirme Göstergeleri (IOC'ler)
Socket analizi:
-
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ış: Yükleme sırasında ağ bağlantısı, 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
Enfeksiyon şüpheniz varsa, security@npmjs.com adresine bildirin ve logları saklayın.
Sonuç
axios 1.14.1'in ele geçirilmesi, bağımlılık güvenliğinin sürekli yönetilmesi gerektiğini gösteriyor. Sürümleri kilitleyin, CI'a Socket gibi analiz araçları ekleyin, terslikte kimlik bilgilerini değiştirin ve kod incelemesinde kilit dosyalarını mutlaka kontrol edin.
Güncellenen axios sonrası API entegrasyonunuzu güvenceye almak için Apidog, HTTP istemci davranışınızı test etmek için senaryolar ve onaylar sunar.
Sıkça Sorulan Sorular
Hangi axios sürümleri ele geçirildi?
axios@1.14.1 ve axios@0.30.4. Güvenli sürüm 1.14.0 veya 1.13.x/1.12.x serileridir.
Kötü amaçlı axios yükü ne yapıyor?
plain-crypto-js@4.2.1'i yüklüyor ve bu paket uzaktan erişim truva atı (RAT) içeren çok aşamalı bir yük bırakıyor. RAT, uzaktan komut çalıştırabilir, ortam değişkeni ve sırları sızdırabilir, kalıcı olabilir.
Ele geçirilmiş sürümü kurup kurmadığımı nasıl anlarım?
npm list axios — eğer 1.14.1 veya 0.30.4 ise etkilendiniz.
npm list plain-crypto-js — mevcutsa, kötü amaçlı kod çalıştı demektir.
Sadece axios'u güncellemek yeterli mi?
Hayır. Güncelleme, kötü amaçlı bağımlılığı kaldırır ama RAT makinenize yerleşmişse, tüm sırları değiştirin ve kalıcılık açısından makineyi denetleyin.
Saldırgan, bakımcı olmadan npm'e nasıl yayın yaptı?
Bakımcı kimlik bilgileri ele geçirildi; uzun ömürlü npm belirteciyle yayın yapıldı. Axios ekibi yayın kontrollerini sıkılaştırıyor.
Bu, normal bir güvenlik açığından ne farkı var?
Güvenlik açığı, meşru koddaki bir kusur. Tedarik zinciri saldırısı, doğrudan yayın kanalına kötü amaçlı kod ekler — kod, GitHub'da değil, npm yayınında vardı.
Projelerimi gelecekteki tedarik zinciri saldırılarından nasıl koruyabilirim?
Kilit dosyaları kullanın, CI'da npm audit çalıştırın, Socket.dev gibi analiz araçları ekleyin, npm hesaplarında 2FA'yı etkinleştirin, kısa ömürlü belirteçler kullanın, kod incelemede kilit dosya farklarını denetleyin.
Top comments (0)