npm ERR! 404 Bulunamadı: event-stream@3.3.6


86

Projemi dağıtmaya çalışıyorum ve aniden bu hatayı alıyorum.

npm ERR! 404 Bulunamadı: event-stream@3.3.6


1
npm bu paketi kullanımdan kaldırdı. kontrol edin github.com/webpack/webpack-cli/issues/698
Prayag C. Patel


Sadece package-lock.json dosyasını silmek ve ardından npm install iyi çalışıyor.
Jitendra Pawar

Yanıtlar:


192

tldr;

Kutsal inek! Olay akışı paketinin, bir bilgisayar korsanının bitcoin çalmasına izin veren bir güvenlik açığına sahip olduğu ortaya çıktı.

Düzeltmek için event-streampaketinizi güncellemeniz gerekir .

  1. Sil node_modulesKlasörü .
  2. Sil package-lock.jsonDosyayı .
  3. Çalıştır npm install.

Bu, paketlerinizi güvenli bir sürüme güncellemeli ve gitmeniz iyi olur.

Ve işte NPM blogunun resmi yanıtı:

Olay akışı olayıyla ilgili ayrıntılar Bu, bu hafta başlarında çoğunuzun farkına vardığınız olay akışı olayının bir analizidir. npm, topluluğumuzun güvenliğini etkileyen operasyonel endişeleri ve sorunları çözmek için derhal harekete geçer, ancak genellikle olayları tartışmadan önce daha kapsamlı analizler yaparız - beklediğinizi biliyoruz.

26 Kasım sabahı, npm'nin güvenlik ekibi, popüler bir npm paketi olan olay akışına giren kötü amaçlı bir paket hakkında bilgilendirildi. Kötü amaçlı yazılımın önceliklendirilmesinden sonra, npm Security, flatmap-stream'i ve event-stream@3.3.6'yı Kayıt defterinden kaldırarak ve daha fazla kötüye kullanımı önlemek için olay akışı paketinin sahipliğini alarak yanıt verdi.

Kötü amaçlı paket, flatmap akışının 0.1.1 sürümüydü. Bu paket, 3.3.6 sürümünde 9 Eylül 2018'de yeni bir bakıcı tarafından olay akışı paketinin doğrudan bağımlılığı olarak eklenmiştir. Olay akışı paketi yaygın olarak kullanılmaktadır, ancak kötü amaçlı kod, çok özel bir geliştirme ortamı kurulumuna sahip bir şirketteki geliştiricileri hedeflemektedir: yükü başka herhangi bir ortamda çalıştırmanın hiçbir etkisi yoktur. Bu özel hedefleme, kötü amaçlı modülü yanlışlıkla yüklemiş olsalar bile, çoğu geliştiricinin sonuçta etkilenmeyeceği anlamına gelir.

Enjekte edilen kod Copay uygulamasını hedefliyor. Copay'deki bir geliştirici, sürüm oluşturma komut dosyalarından birini çalıştırdığında, ortaya çıkan kod, uygulamaya paketlenmeden önce değiştirilir. Kod, 100 Bitcoin veya 1000 Bitcoin Cash'in üzerinde bakiyeye sahip hesaplardan hesap ayrıntılarını ve özel anahtarları toplamak için tasarlandı.

Copay'in ilk yanıtı, bu kötü amaçlı kodu içeren hiçbir yapının halka açıklanmadığı yönündeydi, ancak şimdi Copay'den "kötü amaçlı kodun 5.0.2 ila 5.1.0 sürümlerinde dağıtıldığına" dair onay aldık.

Saldırı Bu saldırı, bir sosyal mühendislik saldırısı olarak başladı. Bir geliştirici gibi davranan saldırgan, olay akışı modülünün bakımını devraldı.

Teknik detaylar İşte bununla ilgilenenler için bildiğimiz bazı teknik detaylar.

Enjekte edilen kod:

Test fikstürü olarak gizlenmiş bir dosyadan AES ile şifrelenmiş verileri okuyun Otomatik olarak ayarlanmış bir ortam değişkeni kullanarak, içe aktarılan modülün npm paket açıklamasını yakalayın Gizlenmiş dosyadan alınan bir veri yığınının şifresini çözmek için paket açıklamasını anahtar olarak kullanın Şifresi çözülen veriler, daha sonra bellekte derlenen ve çalıştırılan bir modülün parçasıydı.

Bu modül aşağıdaki eylemleri gerçekleştirdi:

Gizlenmiş dosyadan başka bir veri parçasının şifresini çözdü Şifresi çözülmüş ilk parçadan ikinci şifresi çözülmüş parçanın sonuna kadar küçük, yorumlanmış bir önek birleştirdi Birleştirilmiş kod bloğunu geçersiz JS'den geçerli JS'ye dönüştürmek için küçük kod çözme görevleri gerçekleştirildi (bunun olduğuna inanıyoruz dinamik analiz araçları tarafından tespit edilmekten kaçınmak için yapılır) Bu işlenmiş JS bloğunu, derleme komut dosyaları tarafından paketlenecek bir bağımlılıkta depolanan bir dosyaya yazdı: Yazılan kod parçası, çalıştırılması amaçlanan gerçek kötü amaçlı koddu Copay'ın son kullanıcılarının sahip olduğu cihazlarda.

Bu kod şunları yapacaktır:

Mevcut ortamı tespit edin: Mobile / Cordova / Electron Kurbanın yardımcı hesabındaki Bitcoin ve Bitcoin Cash bakiyelerini kontrol edin Mevcut bakiye 100 Bitcoin veya 1000 Bitcoin Cash'ten fazlaysa: Kurbanın hesap verilerini tam olarak toplayın Kurbanın copay özel anahtarlarını toplayın Kurbanın hesap verilerini / özel anahtarlarını 111.90.151.134'te çalışan bir toplama hizmetine gönderin. Copay uygulamasının kullanıcıları için bitpay, "5.0.2 ile 5.1.0 arasındaki herhangi bir sürümü kullanıyorsanız, Copay uygulamasını çalıştırmamalı veya açmamalısınız."

Npm kullanıcıları için, npm denetimi çalıştırarak projenizin savunmasız bağımlılık içerip içermediğini kontrol edebilirsiniz. Bu olay akışının etkilenen sürümünü yüklediyseniz, mümkün olan en kısa sürede daha sonraki bir sürüme güncellemenizi öneririz.


7
Veya npm list event-streamherhangi bir üst düzey paketleri yapın ve güncelleyin
Phil

4
Paket kilidini silmek kötü bir fikir gibi geliyor. Lütfen NPM blog gönderisinin bağlantısını paylaşın.
telaffuz

Vay. Alıntı yaptığınız makaleye bir bağlantı var mı? DÜZENLEME - Bulundu: blog.npmjs.org/post/180565383195/…
friederbluemle

7

Aslında event-stream@3.3.6'ya bağlı olan tüm paketleri güncellememiz gerekmiyor.

package-lock.jsonTüm olay akışı referanslarını açabilir , kaldırabilir venpm install tekrar . Daha hızlı olacak.

Bundan sonra npm shrinkwrap && mv npm-shrinwrap.json package-lock.json, tüm dosyayı değil, yalnızca olay akışı referanslarını güncellemelisiniz


4

Aşağıdaki yöntemleri izleyin:

  1. Node_modules ve package_lock.json dosyalarını silin

  2. Npm list olay akışını çalıştır

  3. Npm denetimini çalıştır
  4. Npm önbellek doğrulamasını çalıştır
  5. Npm yüklemesini çalıştır
  6. Git add komutunu çalıştırın. (gerekli dosyaları ekleyin)
  7. Git commit'i çalıştırın (değişikliklerinizi uygulayın)
  8. Git push'u çalıştırın (Kodunuzu gönderin)

3

Bu sorunu aşağıdaki adımlarla çözüyorum:

  1. /node_cache/_logs/xxxx-xx-xxx-debug.log'da bu hata için en son günlüğünüzü açın
  2. event-streamyaprağın kökünü bulun , örneğin:


    45 silly saveTree +-- nodemon@1.18.4
    45 silly saveTree | +-- chokidar@2.0.4
    45 silly saveTree | +-- pstree.remy@1.1.0
    45 silly saveTree | | `-- ps-tree@1.2.0
    45 silly saveTree | |   `-- event-stream@3.3.6
    45 silly saveTree | |     +-- duplexer@0.1.1
    45 silly saveTree | |     +-- from@0.1.7
    45 silly saveTree | |     +-- pause-stream@0.0.11
    45 silly saveTree | |     `-- split@0.3.3

  1. bu durumda, kök nodemon'dur, bu nedenle şu şekilde düzeltebilirsiniz: npm install nodemon@1.18.4
  2. npm şimdi başarıyla yükle

3

Yorumlarda belirtildiği gibi, temel sorun şuydu: package-lock.json (kilit dosyasının) kullanımdan kaldırılmış bir paket içermesiydi. Kilit dosyasını silmek ve bağımlılıkları yeniden yüklemek sorunu çözdü.

Bunu yapmanın en hızlı yolu şu 2 adımdır:

  • sil package-lock.jsondosyayı
  • bağımlılıkları yeniden yüklemek için yazın npm i(veya npm install)

2

Package.json'da npm-run-all'ı 4.1.3'ten 4.1.5'e güncelledim (kilit dosyası olay akışında kaldırın) Sonra npm yükle.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.