Langsung ke konten
Guide

Cacing miasma menyerang paket npm Red Hat: deteksi, putar, ganti

| 8 min read

Worm npm yang menyebar sendiri menyerang 7 paket @redhat-cloud-services pada tanggal 29 Mei 2026. Worm ini menyembunyikan persistensi di dalam Claude Code dan VS Code. Skrip deteksi 60 detik, lintasan rotasi, dan perbaikan struktural.

Code on a terminal representing an npm supply chain worm incident response
Photo by Growtika on Unsplash

Pada tanggal 1 Juni 2026, peneliti menangkap cacing npm yang menyebar sendiri dan telah hidup sejak tanggal 29 Mei. Kartu panggilnya adalah pesan komit: "Miasma: The Spreading Blight." Red Hat yang dikompromikan akun GitHub karyawan mendorong komitmen yatim piatu yang berbahaya langsung ke RedHatInsights repositori, melewati tinjauan kode, dan tujuh @redhat-cloud-services paket mengirimkan muatan pencuri kredensial kepada semua orang yang memasangnya.

Ada dua hal yang membuat Miasma layak dijadikan runbook baru. Ini berjalan di a preinstall kait, begitulah kebakaran sebelumnya postinstall dan bahkan instalasi yang dibatalkan dapat membuat instalasi tersandung. Dan itu menanam ketekunan di dalam alat pengembang Anda: kait SessionStart di Claude Code dan a tasks.json dengan "runOn": "folderOpen" dalam proyek VS Code. Menghapus node_modules tidak melakukan apa pun terhadap itu. Berikut ini deteksi, putar, ganti pedoman.

Tujuh paket yang dikompromikan

Setiap orang berada di bawah @redhat-cloud-services cakupan:

  • vulnerabilities-client
  • tsc-transform-imports
  • topological-inventory-client
  • sources-client
  • rule-components
  • remediations-client
  • rbac-client

Langkah 1: deteksi dalam waktu kurang dari 60 detik

Tiga sinyal: paket yang disusupi di pohon Anda, artefak persistensi di Claude Code atau VS Kode, dan lalu lintas exfil disamarkan sebagai panggilan ke api.anthropic[.]com:443/v1/api. Jalankan ini dari host mana pun dengan npm Dan git:

Setiap pukulan berarti Anda melompat ke langkah 2. Worm selesai dipanen sebelum Anda selesai membaca penasehat, jadi satu sinyal sudah cukup untuk mulai berputar.

Trik ketekunan adalah bagian yang menggigit tim yang melakukan pembersihan terlalu cepat. Anda dapat menghapus paket buruk, bangun kembali node_modules, dan masih memiliki koneksi SessionStart ~/.claude/settings.json yang menjalankan kembali payload saat berikutnya Anda membuka Claude Kode. Audit ~/.claude/settings.json, .vscode/tasks.json, Dan .github/workflows dengan tangan sebelum Anda memanggil tuan rumah untuk membersihkan.

Langkah 2: konfirmasikan jendela publikasi dengan npm API

Sebelum Anda memasang pin pada versi "aman", periksa kapan versi tersebut dipublikasikan. Versi jahatnya mendarat 29 Mei, jadi rilis apa pun yang bertanggal hari itu atau setelahnya patut dicurigai. Titik akhir botoi npm mengembalikan stempel waktu dan daftar pengelola yang dimodifikasi tanpa npm install:

A modified stempel waktu pada atau setelahnya 2026-05-29 berarti menyematkan ke yang terakhir diketahui rilis yang baik diterbitkan sebelum tanggal tersebut, bukan yang terbaru. Bentuk GET menyimpan cache di CDN, begitu juga Anda dapat melipatgandakannya menjadi pemeriksaan persetujuan ketergantungan yang berjalan pada setiap permintaan penarikan.

Langkah 3: putar, lalu gosok batang kayunya

Miasma memanen rahasia GitHub Actions, token npm, kredensial cloud, Kubernetes, dan Vault materi, kunci SSH, dan kredensial Git. Putar dalam urutan itu: token npm menghentikan penerbitan baru, GitHub PAT menghentikan penulisan repositori, kunci cloud IAM menghentikan exfil data, lalu Vault dan SSH. Jangan selidiki dulu; putar, lalu selidiki.

Payload membuang rahasia tersebut ke dalam log yang mengalir ke Datadog, Sentry, dan tiket Anda sistem. Pipa bidang berisiko tinggi melalui detektor rahasia dan gagal ditutup sebelum mencapai a indeks yang dapat dikueri:

Langkah 4: blokir gelombang berikutnya dengan penjaga CI

Miasma memerlukan tiga hal pada runner Anda: versi yang dikompromikan, hook siklus hidup yang berjalan, dan file persistensi yang dapat ditulisnya. Hancurkan siapa pun. Pemeriksaan Tindakan GitHub ini menonaktifkan siklus hidup skrip untuk pekerjaan itu, gagal pada penanda persistensi Miasma, menandai paket cakupan Red Hat, dan memerlukan asal yang ditandatangani pada deps runtime:

Menyimpan ignore-scripts aktif secara default dan pertahankan daftar singkat yang diizinkan untuk paket-paket itu dibuat secara sah (TypeScript, esbuild, Sharp). Kait pra-instal yang tidak pernah berjalan tidak dapat dipanen apa pun.

Langkah 5: mengecilkan permukaan yang dapat menampung worm

Paket yang paling sering diracuni pada gelombang tahun 2026 membungkus satu panggilan jaringan: klien API, pembantu validasi, dan utilitas kecil. Masing-masing merupakan calon yang akan dihapus dan diganti dengan a panggilan HTTPS yang dapat dibatalkan yang tidak menjalankan kode lokal.

Kategori Ketergantungan npm yang khas Penggantian HTTP Radius ledakan jika ditembus
Pemindaian rahasia dan PII secretlint, detektor pii /v1/pii/detect Putar satu kunci API
Metadata paket pembungkus klien registri npm /v1/npm/{package} Putar satu kunci API
Validasi email validator, validator email dalam /v1/email/validate Putar satu kunci API
Pemeriksaan pelanggaran paket klien hibp /v1/breach/check Putar satu kunci API

Poin-poin penting

  • Periksa file persistensi dev-tool. Racun bersembunyi di dalamnya ~/.claude/settings.json Dan .vscode/tasks.json. Menghapus paket tidak melepaskan kaitnya.
  • Sematkan berdasarkan tanggal penerbitan. Apa pun dalam tujuh paket bertanggal pada atau sesudahnya 29-05-2026 mencurigakan. Menggunakan /v1/npm/{package} untuk mengonfirmasi.
  • Putar sebelum Anda menyelidikinya. token npm, GitHub PAT, kunci cloud, Vault, SSH. Exfil selesai dalam hitungan detik.
  • Nonaktifkan skrip siklus hidup secara default. Hook pra-instal yang tidak pernah berjalan tidak bisa mencuri apa pun.
  • Kecilkan permukaannya. Ganti paket npm panggilan tunggal dengan HTTP yang dapat dibatalkan titik akhir. Kunci yang dilanggar mati dalam satu permintaan.

Pameran Botoi /v1/npm/{package}, /v1/pii/detect, /v1/breach/check, dan sekitar 200 titik akhir tujuan tunggal lainnya di belakang satu kunci API dengan 5 permintaan/mnt gratis. Hubungkan ke runbook insiden Anda, atau sambungkan server MCP kepada Claude Kode agar asisten Anda menjalankan skrip deteksi untuk Anda. Mulai dari dokumen interaktif.

FAQ

Apa yang dimaksud dengan serangan rantai pasokan Miasma?
Miasma adalah worm npm yang menyebar sendiri dan ditemukan pada tanggal 1 Juni 2026, dengan komitmen pertama "Miasma: The Spreading Blight" tertanggal 29 Mei 2026. Akun GitHub karyawan Red Hat yang telah disusupi mendorong komitmen yatim piatu yang berbahaya ke repositori RedHatInsights, melewati tinjauan kode, dan tujuh paket npm @redhat-cloud-services diterbitkan dengan kait pra-instal yang dikaburkan yang mengumpulkan kredensial dan menyebar ke host baru.
Paket mana yang disusupi?
Tujuh paket di bawah cakupan @redhat-cloud-services: vulnerabilities-client, tsc-transform-imports, topological-inventory-client, source-client, rule-components, remediations-client, dan rbac-client. Jika lockfile Anda menarik salah satu dari ini setelah 29 Mei 2026, perlakukan host sebagai telah disusupi dan putar setiap kredensial yang disentuhnya.
Apa perbedaan Miasma dengan worm npm sebelumnya?
Miasma berjalan di hook pra-instal, sehingga diaktifkan sebelum pasca-instalasi dan bahkan instalasi yang dibatalkan dapat memicunya, dan ia menanamkan persistensi di dalam alat pengembang, bukan hanya CI. Ia memasukkan hook SessionStart ke dalam Claude Code, menulis task.json dengan folder runOnOpen ke dalam proyek VS Code, dan menghasilkan payload terenkripsi unik per infeksi untuk menghindari pemindaian tanda tangan. Menghapus node_modules tidak menghapusnya.
Apa yang dicuri oleh worm tersebut dan ke mana ia mengirimkannya?
Rahasia GitHub Actions, token npm, kredensial cloud, materi Kubernetes dan Vault, kunci SSH, dan kredensial Git. Ini menyamarkan eksfiltrasi sebagai lalu lintas ke api.anthropic[.]com pada port 443 dan kembali ke GitHub sebagai saluran sekunder, sehingga pemfilteran jalan keluar pada domain yang tidak diketahui saja tidak akan menangkapnya.
Bagaimana HTTP API satu tujuan mengurangi risiko ini?
Sebuah paket dengan hook pra-instal menjalankan kode arbitrer pada setiap mesin yang menginstalnya. Panggilan HTTPS ke API tujuan tunggal tidak menjalankan apa pun secara lokal dan dilindungi oleh kunci yang dapat dibatalkan. Jika penyedia API dilanggar, Anda memutar satu kunci. Jika paket di pohon Anda dilanggar, malware sudah dijalankan. Perdagangannya adalah biaya latensi kecil untuk radius ledakan kecil dan pencabutan instan.

Mulai membangun dengan botoi

150+ endpoint API untuk pencarian, pemrosesan teks, pembuatan gambar, dan utilitas developer. Paket gratis, tanpa kartu kredit.