TeamPCP adalah nama yang dipakai peneliti untuk kelompok di balik kampanye rantai pasok 2026 yang dimulai dari Trivy, pemindai keamanan populer milik Aqua Security, lalu merembet ke Checkmarx KICS dan pustaka AI LiteLLM. Kampanye ini penting karena perkakas yang seharusnya melindungi justru menjadi pintu masuk. Artikel ini merangkum kronologi hingga 29 Oktober 2026 dan pelajaran bagi tim DevOps di Indonesia.
Gambaran singkat kampanye TeamPCP
Menurut analisis Snyk dan Datadog, rangkaian ini berawal dari kompromi Trivy pada 19 Maret 2026. Kredensial CI/CD yang dicuri dari situ kemudian dipakai untuk serangan berikutnya di ekosistem lain. Datadog menyebut kampanyenya satu rangkaian yang melewati npm, Checkmarx KICS, ekstensi OpenVSX, dan bahkan organisasi GitHub Aqua Security, tempat 44 repositori diubah namanya pada 22 Maret dengan deskripsi "TeamPCP Owns Aqua Security". Datadog juga menempatkan kompromi Checkmarx pada 23 Maret 2026. Pelajaran intinya: rahasia yang dicuri dari satu insiden dapat menjadi bahan bakar serangan berikutnya.
Kronologi: dari Trivy ke LiteLLM
19 Maret 2026: Trivy dan Trivy Action
Menurut Snyk, 75 dari 76 tag aquasecurity/trivy-action diarahkan ulang ke commit berbahaya (catatan CVE menyebut 76 dari 77), tujuh tag historis setup-trivy dihapus dan dibuat ulang dengan kode berbahaya (hanya v0.2.6 yang tetap bersih), dan biner Trivy v0.69.4 berbahaya diterbitkan ke GitHub Releases, Docker Hub, GHCR, dan AWS ECR. Jendela paparan sekitar 12 jam, dari sekitar 17:43 UTC pada 19 Maret hingga sekitar 05:40 UTC pada 20 Maret. Versi aman: Trivy v0.69.3, trivy-action v0.35.0, dan setup-trivy v0.2.6.
Muatan berbahaya berjalan sebelum pemindaian Trivy yang sah, sehingga pipeline tampak normal. Pada runner yang dihosting GitHub ia mengambil rahasia CI/CD dari memori proses Runner, sedangkan pada runner self-hosted ia mencari kunci SSH, kredensial cloud, dan konfigurasi Kubernetes. Saat Snyk menulis analisisnya pada 20 Maret, belum ada CVE untuk insiden ini. Sejak 23 Maret insiden tersebut tercatat sebagai CVE-2026-33634 (9.4 pada CVSS 4.0 dari advisori GitHub, 8.8 pada CVSS 3.1 dari NVD), dan CISA memasukkannya ke KEV pada 26 Maret 2026 sebagai "Embedded Malicious Code Vulnerability".
Akar masalah: rotasi kredensial yang tidak atomik
Menurut Snyk, penyerang lebih dulu memanfaatkan workflow pull_request_target pada akhir Februari untuk mencuri personal access token tingkat organisasi, lalu memakainya dalam kompromi 1 Maret. Aqua Security kemudian mengakui bahwa rotasi kredensial setelah insiden itu tidak sepenuhnya atomik dan penyerang mungkin mengetahui token yang telah diperbarui. Kredensial yang selamat dari rotasi dipakai kembali untuk serangan 19 Maret. Rotasi yang setengah jalan sering sama buruknya dengan tidak merotasi.
24 dan 27 Maret 2026: LiteLLM dan Telnyx di PyPI
Menurut Datadog, LiteLLM versi 1.82.7 dan 1.82.8 diterbitkan pada 24 Maret, dan Telnyx 4.87.1 serta 4.87.2 pada 27 Maret. Versi 1.82.8 menambahkan berkas .pth yang dieksekusi setiap kali interpreter Python berjalan, sementara 1.82.7 menyisipkan kode ke modul proxy. Muatan mengumpulkan rahasia seperti variabel lingkungan, kunci SSH dan cloud, serta konfigurasi Kubernetes dan Docker, lalu mengirimkannya terenkripsi ke luar, memasang layanan persisten bernama sysmon.service, dan dapat membuat pod berhak istimewa di Kubernetes. PyPI kemudian mengarantina proyek LiteLLM. Datadog menelusuri rangkaian ini ke kompromi Trivy 19 Maret dan menyimpulkan bahwa kredensial CI/CD curian dari kompromi awal dapat berantai menjadi serangan baru di ekosistem lain.
22 April 2026: Checkmarx KICS
Menurut Docker, pada 22 April sekitar 12:35 UTC pelaku masuk ke Docker Hub dengan kredensial publisher Checkmarx yang valid dan mendorong image berbahaya ke checkmarx/kics. Lima tag yang sudah ada ditimpa (termasuk latest) dan dua tag baru dibuat. Biner tetap memindai seperti biasa tetapi mengirim keluaran pemindaian terenkripsi ke luar, padahal keluaran KICS sering memuat rahasia dan detail infrastruktur. Pemantauan Docker mendeteksinya dalam sekitar 30 menit. Perlu dicatat, artikel Docker tidak menyebut TeamPCP, jadi atribusi ke kelompok yang sama berasal dari sumber lain.
21 Oktober 2026: LiteLLM 1.107.0, insiden baru
Menurut postmortem LiteLLM sendiri, versi 1.107.0 di PyPI tayang sekitar 11:39 sampai 13:23 UTC, dan tag Docker Hub menunjuk ke image yang terkompromi sekitar 11:46 sampai 14:20 UTC. Tag sumber di GitHub tidak memuat berkas berbahaya. Penyerang memakai token OAuth GitHub CLI milik pengembang yang dicuri, menonaktifkan perlindungan branch, dan menjalankan workflow rilis terhadap repositori tiruan. Dugaan awal dalam postmortem mengaitkan kebocoran token itu dengan respons Claude Code yang bisa memuat token GitHub CLI dan tercatat di log sebuah deployment LiteLLM internal yang terbuka ke internet, tetapi pembaruan 23 Oktober menyatakan sebagian asumsi awal ternyata tidak akurat atau tidak lengkap. Karena itu rujuklah halaman rekam kejadian kanonis di situs LiteLLM. Versi aman terakhir adalah 1.106.2, dan pelanggan enterprise dengan registry privat tidak terdampak. Postmortem yang kami baca tidak menyebut atribusi ke TeamPCP.
Mengapa alat keamanan jadi sasaran empuk
Pemindai berjalan di dalam CI dengan akses ke rahasia build, sering dengan izin luas dan jarang dibatasi. Siapa pun yang membajak pemindai mendapat akses ke seluruh pipeline pengguna. Gateway AI seperti LiteLLM juga menyimpan banyak kunci penyedia model, sehingga satu pembobolan bisa membuka banyak akun sekaligus. Dengan kata lain, hal-hal yang dipercaya paling dalam adalah target paling bernilai. Konteks lebih luas ada di artikel supply chain attack.
Langkah pertahanan yang konkret
- Pin action ke commit SHA penuh, bukan tag yang bisa dipindahkan. Ini persis hal yang gagal pada Trivy. Lihat panduan mengamankan pipeline CI/CD.
- Pin image container berdasarkan digest, dan bersihkan cache lokal, runner, dan mirror dari digest berbahaya (Docker mencatat bahwa tarikan bersih tidak menghapus image buruk yang sudah di-cache).
- Audit workflow pull_request_target dan batasi izin serta akses rahasianya. Gunakan token berskala repositori, bukan PAT tingkat organisasi.
- Rotasi kredensial secara menyeluruh dan serentak setelah insiden, bukan sebagian. Putar semua rahasia yang terjangkau dari lingkungan terdampak, lalu rebuild dari image bersih.
- Kunci versi dependensi Python dengan hash, dan jangan menarik versi terbaru secara otomatis di produksi.
- Pantau lalu lintas keluar runner CI dan cari berkas persistensi yang disebut dalam laporan IOC.
- Kurangi rahasia pada pemindai. Beri alat keamanan hanya akses yang benar-benar perlu.
Jika Anda memakai versi terdampak
Perlakukan setiap host atau job CI yang memasang versi tersebut sebagai paparan kredensial penuh. Tentukan sistem mana yang memasangnya, rotasi kredensial yang terjangkau dengan prioritas pada kemampuan menerbitkan kode dan akses ke penyimpanan rahasia, dan cari indikator dari laporan Datadog atau Snyk. Mengembalikan paket ke versi lama saja tidak cukup. Untuk LiteLLM 1.107.0, postmortem menyarankan tidak menjalankan pip install lebih dulu di lingkungan terdampak karena setiap start Python bisa menjalankan ulang berkas berbahaya, melainkan membangun ulang image dan virtualenv dari awal, serta memeriksa log CloudTrail untuk penggunaan kredensial dari luar infrastruktur Anda.
Relevansi bagi tim Indonesia
Trivy dan LiteLLM adalah perkakas populer yang juga dipakai tim DevOps dan tim AI di Indonesia. Jika Anda memakainya, cek riwayat build Anda untuk 19 sampai 20 Maret 2026 serta 21 Oktober 2026 dan versi di atas. Ini juga alasan lain mengapa jeda versi pada worm seperti Shai-Hulud perlu dipertimbangkan di semua ekosistem, bukan hanya npm.
Baca juga: Malware di AUR Arch Linux: Kasus Atomic Arch.
Pertanyaan yang Sering Diajukan
Apakah saya perlu berhenti memakai Trivy?
Tidak otomatis. Versi aman telah tersedia. Yang perlu diubah adalah cara memakainya: pin ke SHA atau digest, beri rahasia minimal, dan pantau.
Apakah ini sama dengan kasus LiteLLM Oktober 2026?
Bukan. Insiden Maret adalah bagian dari rangkaian yang ditelusuri ke kompromi Trivy, sedangkan insiden 21 Oktober 2026 menurut postmortem LiteLLM memakai token GitHub CLI pengembang yang dicuri.
Bagaimana tahu apakah saya terdampak?
Periksa riwayat build dan lockfile untuk versi dan tanggal di atas, lalu cari indikator yang dipublikasikan peneliti.
Kesimpulan
Kampanye TeamPCP memperlihatkan bahwa satu rotasi kredensial yang tidak tuntas dan satu tag yang bisa dipindahkan cukup untuk menjalar ke banyak organisasi. Pin, batasi, rotasi tuntas, dan pantau. Jika tim Anda ingin memperkuat keamanan pipeline, ikuti pelatihan Linuxhackingid. Rujukan: Snyk tentang Trivy, Datadog tentang LiteLLM, dan postmortem LiteLLM.
Every article is reviewed by the practice lead who ran the work before it is published.
