Apa Yang Berlaku
Keselamatan AI · Ejen AI · Bedah Siasat Peringkat Rangkaiancereblab · 12 Jul 2026 · rekod sehingga 25 Ogos 2026
Ringkasan eksekutif · taklimat satu halaman
“Jangan Buka Sebarang Fail” — dan Seluruh Repositori Tetap Dihantar
Bedah siasat peringkat rangkaian ke atas Grok Build, CLI pengekodan xAI — dinamakan semula SpaceXAI pada 6 Julai 2026 — menunjukkan binaan 0.2.93 menjalankan dua saluran bebas: bacaan fail oleh model itu sendiri, dan muat naik latar belakang yang berasingan bagi keseluruhan ruang kerja sebagai git bundle. Gesaan kebenaran hanya mengawal yang pertama. Dalam larian kawalan yang menentukan, agen itu diarahkan supaya tidak membuka apa-apa — ia patuh, dan repositori itu tetap meninggalkan mesin, lengkap dengan sejarah git di dalamnya. Muat naik itu dimatikan di pihak pelayan keesokan harinya; apa yang didedahkannya tentang model persetujuan alat itu adalah sebab laman ini masih releven enam minggu kemudian.
Dalam Angka satu repositori 12 GB, satu sesi
- 27,800×lebih banyak data meninggalkan mesin daripada yang diperlukan oleh giliran model
- 5.10 GiBdimuat naik melalui /v1/storage — berbanding 192 KB trafik model
- 0tetapan ditemui yang menghentikan muat naik, sebelum pembetulan 13 Julai — “saya tidak menemui satu pun”
- 2repositori yang tidak berkaitan — penanda canary yang sama, tidak pernah dibaca, berjaya dipulihkan
Apa yang Dibuktikan — dan Apa yang Tidak digredkan mengikut kekukuhan, paling kukuh dahulu
| Kekukuhan | Apa | Siapa yang kata |
|---|---|---|
| Disahkan | Semasa pelancaran, xAI memasarkan Grok Build sebagai “local-first”, menyatakan tiada kod sumber dihantar ke pelayannya | Liputan pelancaran DevOps.com, 15 Mei 2026, dibaca terus |
| Disahkan | Pada 13 Julai muat naik seluruh repositori berhenti; pelayan mula mengembalikan disable_codebase_upload: true — disahkan secara berasingan pada akaun kedua | Ujian semula cereblab sendiri; catatan akaun pembangun Peter Dedene sendiri, disiarkan di X |
| Disahkan | xAI (dinamakan semula SpaceXAI enam hari sebelumnya) mengakui secara terbuka bahawa penyimpanan data telah dihidupkan secara lalai untuk pengguna bukan perusahaan, dan Musk berjanji memadam semua data yang dimuat naik sebelum ini | Catatan SpaceXAI sendiri di X; The Register, 14 Julai 2026 |
| Disahkan | SpaceXAI menjadikan CLI Grok Build sumber terbuka di bawah Lesen Apache pada 16 Julai; kod muat naik didapati masih wujud dalam keluaran itu, diubah dan bukannya dibuang | The Register, 16 Julai 2026, memetik semakan pembangun Simon Willison sendiri |
| Disahkan, tetapi tidak dapat disahkan di sini | Grok Build 0.2.93 menjalankan saluran kedua yang membungkus keseluruhan repositori, berserta sejarah git penuh, dan memuat naiknya melalui /v1/storage tanpa mengira sama ada agen diarahkan membaca apa-apa; pada repositori ujian 12 GB, saluran itu memindahkan 5.10 GiB berbanding 192 KB trafik giliran model | Tangkapan trafik cereblab, berserta rangka ujian ulangan awam — tidak diulang secara berasingan oleh mana-mana pihak ketiga bernama dalam sumber di bawah |
| Disahkan, tetapi tidak dapat disahkan di sini | Mengklon bundle yang ditangkap memulihkan fail yang agen diarahkan secara jelas supaya tidak membukanya, kata demi kata, berserta sejarah git penuh; diulang pada repositori kedua yang tidak berkaitan | cereblab, seperti di atas |
| Disahkan, tetapi tidak dapat disahkan di sini | Rahsia dalam fail .env yang dijejaki dihantar tanpa ditapis, baik dalam trafik giliran model mahupun dalam muat naik simpanan | cereblab, seperti di atas |
| Disahkan, tetapi tidak dapat disahkan di sini | Mematikan “Perbaik model” tidak menghentikan muat naik bundle; pelayan terus melaporkan trace_upload_enabled: true | cereblab, seperti di atas |
| Tidak disahkan | Sama ada janji memadam data yang dimuat naik sebelum ini benar-benar dilaksanakan | Tidak dinyatakan dalam mana-mana sumber di bawah, setakat 25 Ogos 2026; laporan The Register sendiri pada 14 Julai turut menyatakan perkara yang sama tentang liputannya sendiri |
| Tidak disahkan | Bahawa “penyelidik lain” mengesahkan penemuan itu secara berasingan pada repositori mereka sendiri, dan bahawa Codex dan Anthropic “secara berasingan menemui bukti tidak langsung” bagi lapan lagi repositori persendirian yang dimuat naik sepenuhnya | Laman cereblab sendiri (tanpa nama, tiada bahan dipautkan); catatan pembangun Peter Dedene sendiri tentang apa yang dikatakannya ditemui oleh pihak-pihak itu — kedua-duanya tidak disahkan oleh sebarang kenyataan daripada OpenAI atau Anthropic |
| Tidak bersifat awam | Sama ada SpaceXAI melatih modelnya menggunakan data yang dikumpul dengan cara ini | Gist cereblab sendiri menyatakan dengan jelas bahawa ini tidak dibuktikan sama ada benar atau tidak: “muat naik/simpanan ≠ latihan” |
Garis Masa
Bagaimana Ia Berlaku sebelas hari dari bedah siasat hingga sumber terbuka, kemudian lima minggu tanpa khabar tentang penyempurnaan
- 2026-02-02SpaceX melengkapkan pengambilalihan xAI secara sepenuhnya melalui saham.
- 2026-05-15Grok Build mendapat liputan semasa ujian awal, dipasarkan sebagai “local-first” — akhbar perdagangan melaporkan dakwaan xAI sendiri bahawa tiada kod sumber dihantar ke pelayannya.
- 2026-07-06Akaun awam xAI dinamakan semula sebagai SpaceXAI.
- 2026-07-12cereblab menerbitkan bedah siasat peringkat rangkaian ke atas grok build 0.2.93, berserta bukti bercincang SHA-256 dan rangka ujian ulangan awam.
- 2026-07-13Muat naik berhenti: pelayan mula mengembalikan
disable_codebase_upload: true. Pembangun Peter Dedene melaporkan bendera yang sama pada akaunnya sendiri. - 2026-07-14The Register dan The Hacker News melaporkan penemuan itu. SpaceXAI menyiarkan catatan di X menjelaskan skop “Perbaik model”, ZDR dan perintah /privacy yang baharu. Musk berjanji secara terbuka untuk memadam semua data pengguna yang dimuat naik sebelum ini — belum disahkan secara berasingan sebagai selesai.
- 2026-07-16SpaceXAI menjadikan CLI Grok Build sumber terbuka di bawah Lesen Apache dan menetapkan semula had penggunaan. Pembangun bebas Simon Willison menyemak kod sumber yang dikeluarkan: kod muat naik masih ada, diubah untuk membalikkan kelakuan itu dan bukannya dibuang.
- 2026-07-22cereblab menguji semula grok build 0.2.106 dan mengesahkan semula pembetulan itu masih berkesan.
- masih terbukaSama ada janji pemadaman itu telah dilaksanakan masih tidak disahkan. Tiada pengecam CVE atau nasihat keselamatan rasmi vendor bagi kelakuan ini terdapat dalam mana-mana sumber di bawah, setakat 25 Ogos 2026.
Hujah
Dua Saluran, Peraturan Berbeza gesaan kebenaran hanya nampak satu
Saluran A · dipacu bacaan
/v1/responses
- Hanya membawa apa yang benar-benar dibuka oleh agen.
- Inilah saluran yang dikawal oleh gesaan kebenaran.
- 192 KB merentas lima permintaan dalam sesi ujian.
- Fail yang tidak pernah dibaca memang tiada di sini.
Saluran B · dipacu repositori
/v1/storage
- Membungkus fail yang dijejaki git berserta seluruh sejarah.
- Tidak peduli apa yang dibaca model — atau tidak dibacanya.
- 5.10 GiB daripada sesi yang sama; 73 ketulan, semuanya HTTP 200.
- Destinasi: satu bucket Google Cloud Storage.
Canary yang Tidak Pernah Dibaca prosa di kiri · larian menentukan di kanan
Nisbah bait itu sendiri sudah memberi petunjuk: 192 KB giliran model tidak mungkin membawa 5.10 GiB, jadi saluran simpanan itu tentulah cerminan seluruh repositori dan bukan hasil sampingan pembacaan. Tetapi bukti yang menentukan adalah pada peringkat fail. Satu larian diberi gesaan “Balas dengan tepat: OK. Jangan baca atau buka sebarang fail.” Agen itu mematuhinya dan tidak membuka apa-apa — namun POST /v1/storage tetap mengembalikan 200, membawa repositori itu sebagai git bundle. Mengklon bundle yang disimpan itu memulihkan sebuah fail canary yang ditanam dan tidak pernah disentuh agen, kata demi kata, berserta sejarah penuh empat commit. Ia berulang pada pangkalan kod kedua yang tidak berkaitan. Rangka ujian yang melakukan ini terbuka kepada umum, dengan kaedahnya diterbitkan sepenuhnya — catatan di atas tetap milik cereblab sendiri, dan tiada rekod sesiapa lain menjalankannya semula secara bebas.
- OKseluruh balasan agen — ia tidak membuka apa-apa
- 4commit yang dipulihkan sepenuhnya daripada bundle itu
- ×2pangkalan kod yang diulang pemulihannya
Pada Trafik Rangkaian satu sesi · dua destinasi
| Apa yang dimuat naik | Saluran | Bukti |
|---|---|---|
| Repositori itu, sebagai git bundle | /v1/storage | 73 ketulan ~75 MB, setiap satunya HTTP 200; diklon semula untuk memulihkan canary yang tidak pernah dibaca. |
| Sebuah .env, tanpa ditapis | kedua-duanya | Kunci API dan kata laluan pangkalan data dalam bentuk jelas di dalam badan permintaan 48 KB, dan sekali lagi di dalam arkib keadaan sesi. |
| Bucket destinasi | GCS | Dinamakan dalam rentetan binari dan dalam laluan metadata yang disediakan — disahkan melalui tiga cara. |
Tiga Suis, Tiada Satu pun Brek andaian lawan kelakuan, sebelum pembetulan 13 Julai
| Kawalan | Apa yang diandaikan pembangun | Apa yang sebenarnya dilakukannya |
|---|---|---|
| Suis “Perbaik model” · hidup secara lalai | menarik saya keluar daripada pengumpulan data | mengawal dasar latihan/penyimpanan, bukan penghantaran. Setelah dimatikan, pelayan masih mengembalikan trace_upload_enabled: true dan bundle itu tetap dimuat naik — sehingga pembetulan di pihak pelayan pada 13 Julai. |
| perintah /privacy (ditambah selepas pembetulan) | menghentikan penghantaran | tetapan penyimpanan data — “bukan sekatan ke atas apa yang dihantar”, diuji pada trafik oleh cereblab. Apa yang sebenarnya menghentikan penghantaran ialah bendera pelayan berasingan, disable_codebase_upload. |
| Sebarang suis mati di pihak pengguna | tentu ada satu di suatu tempat | tiada satu pun ditemui sebelum 13 Julai. Muat naik itu berhenti hanya apabila SpaceXAI menukar satu bendera pada pelayannya sendiri — penawar yang tidak dapat dicapai oleh pengguna. |
Kesimpulannya
Kegagalan itu terletak pada model persetujuan, bukan pada satu baris kod. Gesaan itu bertanya “bolehkah saya membaca?” sementara saluran kedua membungkus fail yang dijejaki git berserta seluruh sejarah dan menghantarnya juga — dan satu-satunya perkara yang pernah menghentikannya ialah vendor itu sendiri, di pelayannya.
Rangka semula
Pendedahan anda ialah apa yang dimuat naik oleh alat itu — bukan apa yang dibacanya.
Apa Yang Ditambah Orang Lain
Mengapa Rahsia yang Dipadam Tetap Dihantar rantaian pendedahan
- 01Commitsatu rahsia, berbulan lalu
- 02Padamdaripada pepohon kerja
- 03Kekalia terus hidup dalam sejarah git
- 04Bungkusfail yang dijejaki + sejarah
- 05Muat naiktanpa mengira bacaan
- 06Tukarsatu-satunya penyelesaian sebenar
Bagaimana Bidang Ini Dibandingkan ujian cereblab sendiri merentas pelbagai alat
| Alat | Memuat naik seluruh repositori? | Kedudukan |
|---|---|---|
| Claude Code | Tidak — hanya fail yang dibukanya | Disahkan, tetapi tidak dapat disahkan di sini |
| Codex | Tidak — hanya fail yang dibukanya | Disahkan, tetapi tidak dapat disahkan di sini |
| Gemini | Tidak — hanya fail yang dibukanya | Disahkan, tetapi tidak dapat disahkan di sini |
| Grok Build (0.2.93, before the fix) | Ya — seluruh repositori berserta sejarah git, ke awan | Disahkan, tetapi tidak dapat disahkan di sini |
Kata-kata Syarikat Sendiri, dan Susulannya dibaca terus, bukan sekadar melalui parafrasa media
Kenyataan awam SpaceXAI sendiri, dibaca terus, menyatakan: “Sejak dilancarkan, Grok Build sentiasa mematuhi sepenuhnya sifar penyimpanan data (ZDR)… Dalam beta awal, penyimpanan data dihidupkan secara lalai untuk pengguna bukan ZDR. Berdasarkan maklum balas anda, kami telah mengubah perkara ini.” Itulah catatan syarikat sendiri tentang apa yang berlaku, dalam kata-katanya sendiri — pengakuan bahawa penyimpanan lalai adalah hidup untuk semua pengguna di luar peringkat perusahaannya, bukan sekadar penerangan tentang satu pembetulan. Ia merangka episod ini sebagai tetapan lalai era beta yang telah dibetulkan, bukannya pepijat penghantaran yang digambarkan oleh tangkapan trafik cereblab; kedua-dua kenyataan dikemukakan di sini bersebelahan, tanpa satu diutamakan berbanding yang lain. Apa yang belum dilakukan SpaceXAI, dalam mana-mana sumber di bawah, ialah menerbitkan nasihat keselamatan, catatan log perubahan, atau CVE bagi kelakuan ini — catatannya tentang peristiwa ini wujud dalam catatan media sosial sahaja, bukan dalam dokumen yang boleh dipetik kelak oleh pembaca sebagai rekod rasmi vendor. Dua ayat lagi dalam kenyataan itu menyentuh terus penemuan ini, dan tidak pernah didamaikan dengannya dalam mana-mana sumber di bawah: SpaceXAI berkata “semua pengguna sentiasa berupaya mematikan muat naik data dalam CLI” dan bahawa “apabila muat naik data dimatikan, pilihan itu dihormati” — satu penafian terus terhadap dakwaan bahawa tiada tetapan pihak pengguna yang menghentikan bundel itu. Ia juga menetapkan tarikh perubahannya sendiri “bermula 12 Julai”, sehari sebelum bendera pelayan diperhatikan berubah.
Kesimpulan
Saranan yang paling berbaloi dahulu
- Tukar setiap kredensial yang boleh dicapai dalam sejarah git yang dijejaki — memadamnya tidak pernah menghapuskannya, dan janji memadam data yang dimuat naik tidak boleh menarik balik apa yang sudah meninggalkan mesin.
- Sahkan pada trafik, bukan pada gesaan — kotak dialog kebenaran hanya menerangkan satu saluran; ukur apa yang benar-benar meninggalkan mesin, sepertimana yang dibenarkan oleh rangka ujian ulangan awam kepada pihak ketiga.
- Tuntut keadaan mati secara lalai — suis penyimpanan yang perlu dijalankan setiap sesi bukanlah persetujuan, dan ia adalah kawalan yang berbeza daripada yang sebenarnya menghentikan penghantaran. Tetapan lalai ialah dasarnya.
- Anggap pembetulan di pihak vendor sebagai jeda, bukan penutup — kod muat naik itu sendiri dilaporkan masih wujud, hanya diubah, selepas pembetulan; dan sama ada data yang dimuat naik sebelum ini benar-benar dipadam masih tidak disahkan. Utamakan alat yang suis matinya berada di tangan anda secara setempat dan boleh anda sahkan.
Kesudahannya
Mana-mana alat pengekodan agentik yang permukaan persetujuannya terhad kepada saluran yang lebih sempit daripada penghantarannya mempunyai pepijat ini — apa pun logonya. Grok Build mengawal bacaan sementara saluran kedua menghantar repositori itu, dan cereblab tidak menemui sebarang tetapan pihak pengguna yang menghentikannya — sesuatu yang dinafikan SpaceXAI: muat naik berhenti hanya apabila vendor — xAI, yang dinamakan semula SpaceXAI beberapa hari sebelumnya — mematikannya pada pelayan mereka sendiri, beberapa hari selepas ditangkap, dan syarikat itu sejak itu telah menjadikan alat itu sumber terbuka, berjanji memadam apa yang dikumpulnya, namun tidak pernah menyatakan apa-apa dalam bentuk nasihat rasmi. Penawar yang tidak dapat anda capai bukanlah kawalan. Tetapan lalai yang betul ialah mati.