Pada 19 Mei, sebanyak 633 versi paket npm yang berbahaya berhasil lolos dari verifikasi asal usul Sigstore. Mereka diizinkan oleh sistem karena penyerang menghasilkan sertifikat tanda tangan yang valid dari akun pemelihara yang telah disusupi.
Sigstore bekerja sesuai dengan desainnya: memverifikasi bahwa paket dibangun di lingkungan CI, memastikan sertifikat yang valid dikeluarkan, dan mencatat semuanya dalam log transparansi. Namun, satu hal yang tidak bisa dilakukan adalah menentukan apakah orang yang memegang kredensial tersebut benar-benar mengizinkan publikasi. Ketidakjelasan ini mengubah sinyal kepercayaan otomatis terakhir di npm menjadi sebuah kamuflase.
Satu hari sebelumnya, StepSecurity mencatat serangan terhadap ekstensi Nx Console di VS Code, sebuah alat pengembang yang banyak digunakan dengan lebih dari 2,2 juta instalasi seumur hidup. Versi 18.95.0 diterbitkan menggunakan kredensial yang dicuri pada 18 Mei dan hanya bertahan kurang dari 40 menit. Namun, telemetri internal Nx menunjukkan sekitar 6.000 aktivasi dalam kurun waktu tersebut, sebagian besar melalui pembaruan otomatis, dibandingkan hanya 28 unduhan resmi. Payload yang dikumpulkan termasuk file konfigurasi Claude Code, kunci AWS, token GitHub, token npm, isi ruang penyimpanan 1Password, dan token akun layanan Kubernetes.
Kampanye Mini Shai-Hulud, yang ditunjuk oleh banyak peneliti kepada aktor ancaman bermotivasi finansial yang dikenal sebagai TeamPCP, menyerang registri npm pada pukul 01:39 UTC pada 19 Mei. Endor Labs mendeteksi gelombang awal saat dua paket dormant, jest-canvas-mock dan size-sensor, menerbitkan versi baru yang berisi skrip Bun obfuscated berukuran 498KB. Kedua paket ini belum diperbarui dalam lebih dari tiga tahun, sehingga versi mendadak dengan ketergantungan hash commit GitHub mentah menjadi sinyal deteksi, asalkan alat pemantauan ada.
Pada 02:06 UTC, worm tersebut sudah menyebar ke seluruh ekosistem visualisasi data @antv dan puluhan paket yang tidak terkatakan, termasuk echarts-for-react dengan sekitar 1,1 juta unduhan mingguan. Socket melaporkan total 639 versi yang terkompromi di seluruh 323 paket unik dalam gelombang ini. Selama siklus hidup kampanye secara keseluruhan, Socket telah melacak 1.055 versi berbahaya di seluruh 502 paket yang mencakup npm, PyPI, dan Composer.
StepSecurity mengonfirmasi bahwa payload tersebut sudah terintegrasi penuh dengan Sigstore. Penyerang tidak hanya mencuri kredensial, tetapi juga dapat menandatangani dan menerbitkan paket npm yang membawa pernyataan asal usul yang valid.
Dua insiden ini bukanlah yang terisolasi. Tim riset di Endor Labs, Socket, StepSecurity, Adversa AI, Johns Hopkins, Microsoft MSRC, dan LayerX secara independen membuktikan bahwa model verifikasi alat pengembang sudah rusak, dan tidak ada kerangka vendor yang mengaudit semua permukaan serangan yang gagal.
Tujuh permukaan serangan gagal dalam 48 jam antara 18 Mei dan 19 Mei: pemalsuan asal npm, pencurian kredensial ekstensi VS Code, eksekusi otomatis server MCP, injeksi prompt agen CI/CD, eksekusi kode kerangka agen, paparan penyimpanan kredensial IDE, dan paparan data AI bayangan. Jaringan audit di bawah ini memetakan masing-masing permukaan ini.
Model verifikasi sudah rusak di keempat CLI pengkodean AI utama
Adversa AI mengungkapkan TrustFall pada 7 Mei, menunjukkan bahwa Claude Code, Gemini CLI, Cursor CLI, dan Copilot CLI semuanya secara otomatis mengeksekusi server MCP yang ditentukan proyek saat seorang pengembang menerima prompt kepercayaan folder. Keempatnya secara default memilih “Ya” atau “Percaya”. Satu tekan tombol akan memunculkan proses tanpa sandbox dengan hak penuh pengembang.
Server MCP beroperasi dengan hak istimewa yang cukup untuk membaca rahasia yang tersimpan dan kode sumber dari proyek lain. Di runner CI yang menggunakan Aksi GitHub Claude Code dalam mode headless, dialog kepercayaan tidak pernah ditampilkan. Serangan ini berjalan tanpa interaksi manusia.
Peneliti dari Johns Hopkins, Aonan Guan, Zhengyu Liu, dan Gavin Zhong menerbitkan “Comment and Control,” membuktikan bahwa instruksi berbahaya di judul permintaan tarik GitHub menyebabkan Claude Code Security Review memposting kunci API-nya sendiri sebagai komentar. Serangan yang sama juga berhasil pada Aksi Gemini CLI milik Google dan Agen Copilot GitHub. Anthropic menilai kerentanan ini dengan CVSS 9.4 Kritis melalui program HackerOne-nya.
Microsoft MSRC mengungkapkan dua kerentanan kritis Semantic Kernel pada 7 Mei. Salah satu kerentanan mengarahkan bidang vektor store yang dikendalikan penyerang ke dalam panggilan eval() Python; yang lainnya mengekspos metode pengunduhan file sisihan host sebagai fungsi kernel yang dapat dipanggil. Ini berarti satu dokumen yang terkontaminasi di dalam vektor store dapat memulai proses di host.
Peneliti keamanan LayerX menunjukkan bahwa Cursor menyimpan kunci API dan token sesi di penyimpanan yang tidak terlindungi, sehingga setiap ekstensi browser bisa mengakses kredensial pengembang tanpa izin yang lebih tinggi.
Aktor ancaman yang memburu kredensial menggandakan tempo operasional mereka
Laporan Investigasi Pelanggaran Data Verizon 2026, yang dirilis pada 19 Mei, menemukan bahwa 67% karyawan mengakses layanan AI dari akun non-korporat di perangkat korporat. AI bayangan kini menjadi tindakan tidak berbahaya ketiga yang paling umum dalam dataset DLP. Kode sumber menjadi jenis data utama yang diajukan di platform AI yang tidak sah – jenis aset yang sama yang menjadi target kampanye worm npm.
Laporan Lanskap Ancaman Layanan Keuangan CrowdStrike 2026, yang dirilis pada 14 Mei, mendokumentasikan musuh yang secara aktif memburu jenis kredensial yang dikumpulkan oleh serangan ini.
STARDUST CHOLLIMA menggandakan tempo operasional mereka melawan entitas keuangan di kuartal keempat 2025. CrowdStrike mencatat bahwa grup ini menggunakan persona perekrut yang dihasilkan AI di LinkedIn dan Telegram, mengirim tantangan pengkodean berbahaya yang terlihat seperti penilaian teknis, dan menjalankan panggilan video palsu dengan lingkungan sintetis. Target mereka adalah GitHub PAT, token npm, kunci AWS, dan rahasia CI/CD. Paparan AI bayangan di grid baris 7 adalah pintu masuk mereka.
Grid Audit Identitas yang Dicuri Pengembang
Tidak ada kerangka vendor saat ini yang mencakup semua tujuh permukaan ini. Grid ini memetakan masing-masing permukaan ke riset yang mengungkapkannya, apa yang tidak bisa dilihat oleh tumpukan Anda, dan tindakan audit yang harus diambil sebelum pembaruan vendor berikutnya.
|
Permukaan Serangan |
Diungkap Oleh |
Apa yang Gagal Verifikasi |
Apa yang Tidak Bisa Dilihat oleh Tumpukan Anda |
Tindakan Audit |
|
1. Pemalsuan asal npm |
Endor Labs, Socket (19 Mei) |
Sertifikat Sigstore yang dihasilkan dari token OIDC yang dicuri lolos verifikasi otomatis |
EDR dan SAST tidak memverifikasi apakah identitas CI yang menandatangani paket mengizinkan publikasi |
Perlukan persetujuan dua pihak pada waktu publikasi untuk paket dengan lebih dari 10.000 unduhan mingguan. Jangan anggap badge Sigstore hijau sebagai bukti keabsahan. |
|
2. Pencurian kredensial ekstensi VS Code |
StepSecurity (18 Mei) |
Marketplace VS Code menerima versi ekstensi berbahaya yang diterbitkan dengan token kontributor yang dicuri |
Pembaruan otomatis ekstensi melewati deteksi endpoint. Jendela Marketplace 12:30 hingga 12:48 UTC; ekspos keseluruhan (termasuk Open VSX) 12:30 hingga 13:09 UTC. |
Tegakkan kebijakan usia minimum untuk pembaruan ekstensi. Kunci versi ekstensi yang krusial. Audit semua ekstensi yang memiliki akses ke terminal atau API sistem file. |
|
3. Eksekusi otomatis server MCP |
Adversa AI, TrustFall (7 Mei) |
Semua dialog kepercayaan CLI default ke “Ya/Percaya” tanpa menyebutkan eksekusi mana yang akan dimunculkan |
EDR memantau perilaku proses, bukan apa yang diperintahkan LLM kepada server MCP. WAF memeriksa muatan HTTP, bukan niat panggilan alat. |
Nonaktifkan persetujuan otomatis server MCP yang terikat proyek di Claude Code, Gemini CLI, Cursor CLI, dan Copilot CLI. Blokir .mcp.json di pipeline CI kecuali yang diperbolehkan secara eksplisit. |
|
4. Injeksi prompt agen CI/CD |
Johns Hopkins, Comment and Control (April 2026) |
Alur kerja GitHub Actions yang menggunakan pull_request_target menyisipkan rahasia ke dalam lingkungan runner yang diproses agen AI sebagai instruksi |
SIEM mencatat panggilan API dari Aksi GitHub yang sah. Panggilan itu sendiri adalah serangannya. Tidak ada tanda jaringan yang mencurigakan. |
Pindahkan alur kerja tinjauan kode AI ke pemicu pull_request. Audit semua alur kerja yang menggunakan pull_request_target dengan akses rahasia untuk integrasi agen AI. |
|
5. Eksekusi kode kerangka agen |
Microsoft MSRC (7 Mei) |
SDK Python Semantic Kernel mengarahkan bidang filter vektor store ke dalam eval(). SDK .NET mengekspos penulisan file sisi host sebagai fungsi kernel yang dapat dipanggil. |
Firewall aplikasi memeriksa muatan input. Mereka tidak memeriksa bagaimana kerangka orkestrasi mem-parsing muatan tersebut secara internal. |
Perbarui SDK Python Semantic Kernel ke 1.39.4 dan SDK .NET ke 1.71.0. Audit semua kerangka agen untuk fungsi yang ditandai sebagai dapat dipanggil model yang mengakses sistem file atau shell host. |
|
6. Paparan penyimpanan kredensial IDE |
LayerX (April 2026) |
Cursor menyimpan kunci API dan token sesi di penyimpanan yang tidak terlindungi dapat diakses oleh ekstensi browser yang terpasang. |
DLP memantau data dalam perjalanan. Kredensial Cursor saat tidak aktif tidak terdeteksi DLP karena tidak ada acara keluar hingga ekstensi mengekstrak data. |
Audit alat pengembang untuk praktik penyimpanan kredensial. Perlukan penyimpanan terlindungi (keychain OS, penyimpanan kredensial terenskripsi) untuk semua konfigurasi alat pemrograman AI. |
|
7. Paparan data AI bayangan |
Laporan DBIR Verizon 2026 (19 Mei) |
67% karyawan mengakses layanan AI dari akun non-korporat di perangkat korporat. Kode sumber adalah jenis data teratas yang diajukan. |
Kebijakan CASB mencakup SaaS yang disetujui. Akun AI non-korporat di perangkat korporat beroperasi di luar lingkup CASB sama sekali. |
Kembangkan tata kelola AI berbasis browser yang memantau penggunaan AI non-korporat di perangkat korporat. Inventarisasi ekstensi browser AI di seluruh organisasi. |
Rencana Tindakan Direktur Keamanan
Direktur keamanan mungkin ingin menjalankan grid ini terhadap kontrak vendor saat ini sebelum perpanjangan Q2 ditutup. Tanyakan kepada setiap vendor permukaan mana dari tujuh permukaan yang dijangkau produk mereka, dan anggap jawaban yang tidak memadai sebagai peta celah.
Setiap kredensial yang dapat diakses dari mesin pengembang atau runner CI yang menginstal paket npm yang terpengaruh antara 01:39 dan 02:18 UTC pada 19 Mei harus dianggap terkompromi. Ini mencakup GitHub PAT, token npm, kunci akses AWS, token akun layanan Kubernetes, token HashiCorp Vault, kunci SSH, dan isi ruang penyimpanan 1Password.
Integrasi agen pengkodean AI yang berjalan di pipeline CI/CD dengan alur kerja pull_request_target perlu diteliti dengan seksama. Masing-masing adalah permukaan injeksi prompt yang memproses komentar PR sebagai instruksi agen.
Tim pengadaan yang mengevaluasi alat pengkodean AI harus mempertimbangkan untuk menambahkan dimensi ketahanan identitas yang dicuri ke dalam penilaian vendor. Pertanyaan yang perlu diajukan adalah: dapatkah vendor menunjukkan bagaimana alat mereka membedakan antara publikasi pemelihara yang sah dan penyerang yang menggunakan kredensial yang disusupi? Jika tidak, alat tersebut bukanlah lapisan verifikasi.
Rantai pasokan alat pengembang memiliki masalah yang sama dengan IAM satu dekade lalu: kredensial membuktikan siapa yang Anda klaim, bukan siapa Anda sebenarnya. IAM memiliki waktu 10 tahun untuk menyesuaikan kontrol sebelum kelompok negara-negara menggunakan pencurian kredensial menjadi operasi industri. Ekosistem alat pengkodean AI kini mulai menghitung waktu tersebut.

