Keamanan siber

Copilot Autofix Membuka Celah Injeksi Shell di Pipeline CI/CD Snowflake

mm
Tambahkan Unite.AI ke sumber pilihan Anda di Google

Sebuah perbaikan keamanan yang ditulis oleh Copilot Autofix milik GitHub dan digabungkan ke repositori Snowflake pada 18 Juni 2026 menghapus pola input yang disanitasi dan membuat pipeline CI/CD perusahaan terbuka untuk injeksi perintah, dan lima hari kemudian, sebuah agen riset AI otonom menemukan celah tersebut, mengeksploitasinya, dan mengambil kredensial Jira yang berfungsi dari runner GitHub Actions, Wiz Research mengungkapkan pada 17 Agustus 2026.

Celah tersebut berada di jira_issue.yml, sebuah alur kerja GitHub Actions di snowflakedb/snowflake-connector-net, repositori publik untuk konektor data .NET Snowflake. Alur kerja dijalankan setiap kali ada yang membuka isu GitHub dan menyisipkan judul isu (teks yang sepenuhnya dikendalikan oleh pelapor) langsung ke dalam skrip shell. Karena pemicunya adalah issues: opened, akun GitHub mana pun di internet dapat memicunya tanpa autentikasi.

“Red Agent” milik Wiz, sebuah alat riset keamanan otonom yang beroperasi melalui program bug bounty HackerOne Snowflake, menandai alur kerja tersebut, membuat exploit yang berfungsi, dan mengekstrak token API Jira dari lingkungan runner. Snowflake memperbaiki alur kerja pada hari yang sama ketika menerima laporan, 23 Juni 2026, memutar kredensial satu hari kemudian, dan memberi tahu Wiz bahwa log audit mereka tidak menunjukkan adanya aktor lain yang menyentuh sistem yang terekspos selama jendela lima hari.

The “Autofix” Removed the Sanitizer

Komit yang memperkenalkan pola dapat disuntikkan masuk melalui PR #1218, “SNOW-2069227: Update jira workflows”, digabungkan pada 18 Juni 2026. Riwayat pull request menunjukkan seorang penulis manusia yang mengerjakan otomatisasi Jira sejak Agustus 2025 — dan, di tengahnya, sebuah komit yang ditulis bersama oleh Copilot Autofix powered by AI, bot GitHub Advanced Security yang menghasilkan perbaikan yang disarankan untuk peringatan pemindaian kode.

Saran AI mengubah cara alur kerja menangani judul isu. Kode yang ada melewatkan judul melalui variabel env: dan membangun muatan JSON‑nya dengan jq --arg, pola yang menjaga teks tidak tepercaya tetap di luar shell. Penggantian yang disarankan menghilangkan itu dan menggunakan ekspansi string langsung:

run: | TITLE=$(echo '${{ github.event.issue.title }}' | sed 's/"/\"/g' | sed "s/'/\'/g")

Escaping sed dijalankan setelah mesin templat GitHub sudah menggantikan judul ke dalam skrip. Kutip tunggal dalam judul memutuskan pembungkus echo '...', dan segala sesuatu setelahnya dieksekusi sebagai shell. Dokumentasi GitHub untuk Copilot Autofix menjelaskan fitur ini sebagai menghasilkan “satu perbaikan yang disarankan untuk sebuah peringatan, yang Anda tinjau dan terapkan sendiri” — langkah peninjauan inilah yang memungkinkan perbaikan ini lolos.

Alur kerja juga menyertakan kondisi penjaga yang tampak membatasi siapa yang dapat memicunya:

if: (github.event_name == 'issues' && github.event.pull_request.user.login != 'whitesource-for-github-com[bot]')

Pada peristiwa isu, github.event.pull_request selalu null, sehingga perbandingan selalu bernilai true. Semua pengguna GitHub melewati gerbang tersebut.

An Agent on Each Side of the Exploit

Upaya eksfiltrasi pertama Red Agent gagal. Muatannya menggunakan karakter komentar # untuk menelan sisa baris yang disuntikkan, tetapi komentar tersebut juga memakan tanda kurung tutup TITLE=$(...), sehingga runner mengembalikan kesalahan sintaks bash alih‑alih mengeksekusi. Menurut tulisan Wiz, agen menganalisis kesalahan itu, menulis ulang muatannya untuk menutup blok shell dengan ; echo ', dan mencoba lagi.

Muatan yang berhasil, yang dikirim sebagai judul isu, meng‑base64‑kan variabel lingkungan runner JIRA_API_TOKEN, JIRA_USER_EMAIL, dan JIRA_BASE_URL serta mengirimnya ke pendengar out‑of‑band melalui curl. Callback tiba dari runner GitHub Actions yang di‑host di Azure dalam hitungan detik.

Token yang dipulihkan diautentikasi sebagai qa@snowflake.net terhadap snowflakecomputing.atlassian.net, dengan akses baca ke seluruh proyek rekayasa, kepatuhan keamanan, dan pelacakan bug bounty Snowflake.

Remediasi Snowflake, yang digabungkan dalam PR #1402 pada 23 Juni 2026, mengembalikan variabel env: yang aman dan pola parsing jq --arg. Token Jira dicabut dan diputar pada 24 Juni 2026. Wiz menyatakan bahwa mereka menghapus secara aman semua data yang diakses selama pengujian proof‑of‑concept.

“Snowflake menghargai pelaporan bertanggung jawab dari Wiz dan kolaborasi seputar temuan ini melalui program pengungkapan kerentanan dan bug bounty kami, HackerOne,” kata perusahaan dalam pernyataan yang dipublikasikan bersama laporan Wiz. “Pengungkapan diterima pada 23 Juni 2026, dan segera diselidiki serta diperbaiki, dan penyelidikan kami tidak menemukan bukti akses tidak sah.”

What the Five-Day Window Shows

Pengungkapan ini muncul di tengah pola yang terdokumentasi: perubahan yang dibantu AI bergerak melalui peninjauan lebih cepat daripada asumsi keamanan di sekitarnya. Log audit Snowflake sendiri yang membuat insiden ini dapat dipahami: mereka memungkinkan perusahaan menyatakan, dan Wiz mengonfirmasi, bahwa jendela eksposur tidak menghasilkan akses pihak ketiga. Analisis log audit Snowflake mengonfirmasi tidak ada pihak ketiga eksternal yang mengakses titik akhir selama jendela lima hari.

Linimasa tersebut juga memadatkan rangkaian yang selama ini dianggap hipotetis. Asisten pengkodean menghapus pola pertahanan yang dipasang khusus untuk mencegah injeksi shell, karena asisten tidak memiliki catatan mengapa pola itu ada. Agen ofensif kemudian menemukan dan memanfaatkan hasilnya dalam hitungan hari, secara otomatis memperbaiki exploitnya terhadap output kesalahan yang hidup. Sisi exploit berjalan tanpa manusia di keyboard; di sisi pengkodean, AI menghasilkan perubahan tetapi manusia yang menerapkan saran dan menggabungkannya — tepatnya langkah peninjauan yang gagal.

Laporan Wiz merekomendasikan agar pull request yang dihasilkan AI melewati analisis statis yang sama seperti kode manusia, agar tim memperpendek masa hidup kredensial agar selaras dengan kecepatan penemuan otomatis, dan agar guardrails memblokir agen menggantikan parser terstruktur dengan interpolasi string langsung. Check Point memindahkan inspeksi prompt untuk lalu lintas AI ke firewall perusahaan awal musim panas ini, dan Unite.AI telah membahas pelarian sandbox agen serta sistem agen yang mencapai target produksi nyata seiring sisi ofensif matang. Insiden Snowflake adalah cerita yang sama diceritakan dari dalam pipeline CI: kerentanannya aktif selama lima hari, dan satu‑satunya alasan ia dibaca sebagai studi kasus bukan notifikasi pelanggaran adalah agen mana yang sampai duluan.

Miles Okada adalah analis AI yang dihasilkan di Unite.AI, yang meliputi kecerdasan buatan dan keamanan siber dengan fokus pada ancaman yang muncul, arsitektur pertahanan, dan dinamika yang berkembang antara penyerang dan sistem otomatis. Karyanya memeriksa bagaimana AI mengubah operasi keamanan, dari deteksi ancaman otonom dan respons hingga munculnya teknik AI lawan.
Dengan perspektif teknis dan investigatif, Miles menganalisis penelitian keamanan, pengungkapan insiden, dan penerapan dunia nyata untuk memahami di mana AI memperkuat pertahanan - dan di mana ia memperkenalkan kerentanan baru. Ia memperhatikan khusus eksploitasi model, pencemaran data, otomatisasi serangan, dan kenyataan operasional mengamankan sistem yang ditenagai AI pada skala besar.
Artikel yang ditulis oleh Miles Okada dihasilkan oleh AI dan ditinjau oleh tim editorial Unite.AI untuk memastikan akurasi, ketat, dan liputan yang bertanggung jawab dari lanskap keamanan AI yang berubah dengan cepat.