Perbezaan ini amat penting. GitHub mengembangkan ungkapan tersebut sebelum shell menjalankan arahan. Oleh itu, tajuk isu yang mengandungi tanda petikan tunggal boleh menutup rentetan yang sepatutnya dilindungi, kemudian menambah arahan shell pilihan penyerang. Percubaan membersihkan nilai itu menggunakan sed selepasnya tidak dapat membatalkan tafsiran shell yang telah berlaku lebih awal.
Pencetus issues: opened
Komit tersebut menyenaraikan “Copilot Autofix powered by AI” sebagai pengarang bersama, dan semakan berbantukan AI itu tidak menandakan masalah berkenaan. Namun, bukti yang tersedia tidak menentukan sama ada Copilot menghasilkan perubahan yang tidak selamat itu atau sekadar menyemak perubahan yang ditulis manusia. Kesimpulan yang lebih tepat ialah Copilot dikaitkan dengan perubahan tersebut dan gagal mengesan suntikan itu—bukan bahawa penghasilan kod oleh model telah dibuktikan secara muktamad.
Red Agent mengimbas organisasi GitHub awam Snowflake untuk mencari corak CI/CD yang berisiko. Ia mengenal pasti bahawa aliran kerja Jira menggunakan data isu yang tidak dipercayai dalam blok run: dan membuat kesimpulan bahawa tajuk isu awam yang direka khas boleh membawa kepada pelaksanaan arahan sewenang-wenangnya pada pelaksana GitHub Actions.
Pada 23 Jun—lima hari selepas perubahan terdedah itu digabungkan—agen tersebut membuka satu isu yang direka khas sebagai sebahagian daripada program pendedahan kerentanan Snowflake melalui HackerOne. Tajuk isu itu berjaya keluar daripada rentetan shell dan menyebabkan aliran kerja menghantar kelayakan Jira ke panggilan balik luar jalur yang dikawal untuk tujuan bukti konsep yang dibenarkan.
Ini ialah ujian keselamatan yang mendapat kebenaran, bukannya pencerobohan tanpa kawalan. Namun, penemuan keselamatannya tetap nyata: satu isu awam boleh mencapai langkah aliran kerja yang mengendalikan kelayakan dalaman dan menukar tindakan biasa membuka isu kepada pelaksanaan arahan.
Aliran kerja yang terjejas mempunyai akses kepada konfigurasi Jira dalaman Snowflake, termasuk URL Jira, e-mel pengguna dan token API. Token yang diperoleh itu dikaitkan dengan qa@snowflake.net; Wiz menggunakannya untuk mengesahkan akses ke portal Jira dalaman serta menilai potensi pendedahan.
Laporan menyatakan bahawa akses baca meliputi projek Jira berkaitan kejuruteraan, pematuhan keselamatan dan aktiviti program ganjaran pepijat. Walau bagaimanapun, bukti yang diberikan tidak menetapkan keseluruhan set keizinan token tersebut atau menyediakan senarai muktamad bagi setiap rekod yang boleh dicapai. Kesimpulan paling kukuh ialah token itu membolehkan akses kepada kandungan Jira dalaman yang sensitif, bukannya akses tanpa had kepada semua sistem Snowflake.
Aset yang terjejas ialah automasi CI/CD repositori tersebut. Tiada versi Snowflake Connector for .NET yang telah dikeluarkan dilaporkan terjejas kerana kecacatan itu berada dalam aliran kerja GitHub Actions, bukan kod masa jalan penyambung.
Wiz melaporkan penemuan itu pada 23 Jun. Snowflake membaiki aliran kerja tersebut pada hari yang sama dan memutar ganti kelayakan Jira yang terdedah pada hari berikutnya.
Snowflake kemudiannya menyemak log audit dan menyimpulkan bahawa Wiz ialah satu-satunya pelaku dalam tempoh pendedahan. Wiz turut menyatakan bahawa semua data bukti konsep yang diakses telah dipadamkan dengan selamat.
Tiada akses pihak ketiga tanpa kebenaran dilaporkan, tiada penetapan CVE dilaporkan dan tiada keluaran penyambung yang terjejas dikenal pasti. Had ini menerangkan kesan yang telah disahkan—tetapi tidak bermakna reka bentuk aliran kerja asal selamat. Tajuk isu awam tidak sepatutnya dibenarkan menjadi sebahagian daripada arahan shell dalam aliran kerja yang mengendalikan kelayakan dalaman.
Kes ini memberi pengajaran yang lebih luas daripada sekadar isu Snowflake atau Copilot. Ungkapan GitHub seperti tajuk isu, tajuk pull request, nama cabang dan komen perlu dianggap sebagai input berbahaya setiap kali ia dihantar ke arahan shell.
Antara amalan reka bentuk yang lebih selamat ialah:
run:.jq untuk membina JSON, bukannya menyusun rentetan shell secara manual.Insiden ini menunjukkan cabaran keselamatan yang semakin jelas: satu sistem pengekodan berbantukan AI boleh terlepas pandang perubahan CI/CD yang berbahaya, manakala agen serangan autonomi pula dapat menemui dan mengesahkannya dalam tempoh beberapa hari. Automasi boleh mempercepatkan pembaikan dan eksploitasi pada masa yang sama—tetapi ia tidak menggantikan semakan bebas.