GitHub Actions yang didukung AI dapat dibajak hanya dengan satu komentar, membocorkan kunci API, token cloud, dan rahasia lainnya. Seorang peneliti keamanan menemukan 22 repositori sumber terbuka di mana pemicu publik, alat AI yang dijalankan dengan bendera “skip prompts”, dan rahasia yang terekspos menciptakan jalur eksfiltrasi yang mudah.

Cara kerja celah ini

Proyek-proyek sekarang menyematkan agen AI—Claude Code, GitHub Copilot CLI, dan alat serupa—langsung di dalam pipeline CI. Sebuah langkah workflow menjalankan perintah shell dan sering kali menambahkan bendera (flag) yang memerintahkan alat tersebut untuk mengabaikan permintaan izin interaktif. Ketika workflow dimulai melalui input publik apa pun—sebuah issue, komentar, atau judul pull-request—penyerang hanya perlu mengirimkan satu baris teks yang akan dianggap sebagai perintah oleh AI.

AI tersebut, yang telah diberikan akses shell tanpa batasan melalui bendera “skip prompts”, dapat membaca variabel lingkungan atau file apa pun yang diekspos oleh workflow. Jika pekerjaan (job) tersebut juga memuat rahasia—seperti kunci API, token layanan cloud, atau kredensial akun layanan lengkap—AI akan mengirimkan nilai-nilai tersebut ke server yang dikendalikan penyerang. Tanpa perubahan kode, tanpa dependensi baru, hanya sebuah komentar yang tampak tidak berbahaya.

Contoh dunia nyata

Peneliti tersebut mengonfirmasi tiga repositori rentan yang telah diperbaiki:

  • pymc-labs/pymc-marketing – sebuah issue publik dapat digunakan untuk mengakses kunci Anthropic API melalui prompt injection.
  • MadAppGang/dingo – workflow tersebut memberikan akses Bash penuh kepada Claude Code dan mengekspos dua rahasia dalam job yang sama.
  • MadAppGang/claudish – menggunakan template rentan yang sama dengan proyek dingo.

Salah satu temuan melibatkan kunci akun layanan cloud yang aktif, yang kemudian dilaporkan langsung oleh peneliti ke tim keamanan penyedia AI besar. Dua belas laporan tambahan sedang menunggu tanggapan dari pengelola (maintainer); nama-nama mereka dirahasiakan hingga perbaikan diterapkan.

Apa risikonya

Ketika penyerang mengekstrak rahasia, kerusakannya bisa bersifat langsung dan mahal. Kunci akun layanan cloud memberikan akses tanpa batas ke sumber daya komputasi, bucket penyimpanan, dan layanan berbayar lainnya. Kunci API untuk penyedia model bahasa besar (LLM) dapat menjalankan kueri tanpa batas, yang berpotensi menimbulkan biaya ribuan dolar. Karena eksploitasi ini berjalan di dalam lingkungan CI, pelanggaran dapat menyebar ke hilir: artefak apa pun yang dibangun pada runner yang terkompromi dapat membawa kode berbahaya, mengubah satu repositori menjadi vektor rantai pasokan (supply-chain vector).

Bagi tim yang mengandalkan CI berbantuan AI, pertimbangannya sangat kontras. Kemudahan pembuatan kode otomatis, linting, atau dokumentasi harus ditimbang dengan risiko bahwa komentar publik dapat menjadi pintu belakang (backdoor) tersembunyi.

Mengapa kerentanan ini mudah terlewatkan

Peneliti tersebut awalnya mengajukan enam laporan yang kemudian ditarik kembali. Penarikan tersebut disebabkan oleh asumsi mengenai pemeriksaan izin GitHub Actions, bukan dari peninjauan baris demi baris terhadap kode sumber Action tersebut. Dokumentasi dan intuisi bisa menyesatkan; satu-satunya cara andal untuk mengonfirmasi postur keamanan dari langkah yang didukung AI adalah dengan memeriksa kode yang menjalankan alat tersebut dan workflow YAML yang menghubungkannya.

Daftar periksa mitigasi

Jika Anda menjalankan AI CLI atau alat serupa di dalam workflow GitHub Actions, jawablah dua pertanyaan ini sebelum melakukan merge:

  1. Siapa yang dapat memicu workflow? Batasi pemicu pada peristiwa yang tepercaya (misalnya, push ke branch yang dilindungi) atau wajibkan persetujuan eksplisit untuk menjalankan workflow yang dimulai oleh kontributor eksternal. Hindari on: issue_comment atau on: issues tanpa pengamanan tambahan.

  2. Rahasia apa saja yang dimuat dalam job yang sama? Jangan pernah mengekspos kunci API, token cloud, atau kredensial akun layanan dalam job yang juga menjalankan agen AI dengan akses shell tanpa batasan. Pisahkan langkah-langkah yang mengandung banyak rahasia ke dalam job atau runner terisolasi yang tidak memanggil alat AI.

Langkah penguatan tambahan:

  • Hapus bendera (flag) yang melewati permintaan izin, sehingga memaksa alat AI untuk meminta konfirmasi eksplisit sebelum mengeksekusi perintah shell.
  • Tambahkan langkah yang menyaring (sanitize) atau menyamarkan (redact) variabel lingkungan apa pun yang dapat dibaca oleh alat AI.
  • Gunakan self-hosted runners dengan kontrol egress jaringan untuk memblokir eksfiltrasi ke endpoint sembarang.

Sudut pandang lain: kegunaan AI dalam CI

Para pendukung berpendapat bahwa peningkatan produktivitas lebih besar daripada risikonya. Saran kode otomatis memangkas waktu peninjauan, dan pengujian berbasis AI dapat menemukan bug lebih awal. Namun, kemudahan yang sama juga memperluas permukaan serangan (attack surface). Kuncinya bukan meninggalkan AI, melainkan memperlakukan alat apa pun dengan hak istimewa tingkat shell sebagai potensi vektor serangan.

Apa yang perlu diperhatikan selanjutnya

Temuan ini telah memicu diskusi di forum keamanan GitHub mengenai izin default yang lebih ketat untuk Actions yang didukung AI. Pembaruan platform di masa mendatang mungkin mencakup:

  • Sebuah flag yang memaksa alat AI untuk berjalan di lingkungan sandbox tanpa akses shell langsung.
  • Deteksi bawaan terhadap pola prompt-injection dalam isi issue atau komentar.
  • Peringatan otomatis ketika sebuah workflow mencampur trigger publik dengan job yang mengandung secret.

Untuk saat ini, tanggung jawab tetap berada di tangan maintainer repositori. 22 repositori yang teridentifikasi menunjukkan bahwa masalah ini tidak terisolasi; proyek apa pun yang meniru pola workflow yang sama rentan terhadap serangan. Audit cepat pada konfigurasi CI dapat mengungkap masalah tersebut sebelum penyerang melakukannya.

Intinya: Satu baris teks dalam issue GitHub publik dapat memberikan kendali penuh kepada agen AI atas lingkungan CI Anda dan mencuri secret yang Anda simpan di sana. Verifikasi siapa yang dapat menjalankan workflow Anda, jauhkan secret dari langkah-langkah yang digerakkan oleh AI, dan periksa setiap flag yang memberikan izin tanpa pengawasan. Biaya dari sebuah pelanggaran jauh lebih besar daripada upaya peninjauan yang disiplin.