
Anthropic yang berposisi sebagai "keselamatan terlebih dahulu", jambang kawalan jaringan alat pembangunan utamanya, Claude Code, tidak pernah benar-benar selamat dalam lima bulan terakhir.
Penyelidik keselamatan bebas, Guan Aonan, menerbitkan penyelidikan terbaru pada 20 Mei, mengungkapkan kelemahan kedua yang boleh dilalui sepenuhnya dalam sandbox rangkaian Claude Code—serangan penyuntikan byte kosong dalam protokol SOCKS5 yang membolehkan proses di dalam sandbox mengakses mana-mana hos yang secara jelas dilarang oleh dasar pengguna. Ini bermakna sejak fungsi sandbox dilancarkan pada Oktober 2025, selama kira-kira 5.5 bulan dan 130 versi pelancaran, setiap versi Claude Code mempunyai kelemahan keselamatan yang boleh dilalui sepenuhnya. Ini merupakan keberhasilan kedua oleh penyelidik yang sama terhadap pertahanan yang sama.
Respons Anthropic terhadap ini adalah keheningan: tiada pemberitahuan keselamatan, tiada nombor CVE, tiada pemberitahuan pengguna. Kelemahan itu diperbaiki secara senyap dalam versi 1 April, dan log pembaruan tidak menyebut sebarang perkara berkaitan keselamatan. Dengan kata lain, seorang pengguna yang masih menjalankan versi lama sama sekali tidak mengetahui bahawa sandbox yang mereka konfigurasikan sejak awal adalah tidak berfungsi.
Dua kunci untuk pintu yang sama
Claude Code ialah pembantu pengaturcaraan AI yang dilancarkan oleh Anthropic pada awal 2025, dengan posisi sebagai "jurutera AI yang berada di dalam terminal." Berbeza dengan penyempurnaan kod berasaskan perbualan tradisional, Claude Code mempunyai kebenaran baca-tulis ke atas repositori kod pengguna dan kemampuan melaksanakan arahan, membolehkannya menyelesaikan operasi secara autonomi seperti meneroka kod, mengedit fail, dan menjalankan ujian. Keterlibatan mendalam ini juga bermaksud risiko keselamatan yang sangat tinggi—jika model direbut melalui serangan penyuntikan prompt, penyerang akan memperoleh keupayaan setara dengan kebenaran terminal pengguna, termasuk membaca pemboleh ubah persekitaran tempatan, melaksanakan arahan sistem sewenang-wenangnya, dan mengakses sumber rangkaian dalaman.
Untuk menyeimbangkan keselamatan dan kecekapan, Anthropic memperkenalkan fungsi sandbox web (v2.0.24) pada Oktober 2025, yang membolehkan pengguna menetapkan senarai putih domain melalui fail konfigurasi untuk membatasi akses rangkaian luaran dalam persekitaran pelaksanaan AI. Sebagai contoh, selepas menetapkan allowedDomains: [“*.google.com”], Claude Code hanya boleh mengakses Google dan subdomainnya, sementara semua trafik lain akan diblokir. Dokumentasi rasmi secara jelas menjanjikan: “Array kosong sama dengan melarang semua akses rangkaian.”
Mekanisme ini diwujudkan oleh proxy SOCKS5: runtime sandbox bawah ( @anthropic-ai/sandbox-runtime ) memulakan pelayan proxy, proses di dalam sandbox tidak membuat sambungan rangkaian secara langsung, tetapi melalui proxy yang meneruskan, dan proxy menjalankan penapisan domain berdasarkan senarai putih yang dikonfigurasi pengguna dalam settings.json . Mekanisme sandbox pada peringkat sistem operasi—sandbox-exec macOS dan bubblewrap Linux—secara betul membataskan Agent kepada alamat gelung tempatan, dan keputusan keluar sepenuhnya diserahkan kepada proxy SOCKS5 ini.

Rajah arsitektur sandbox Claude Code yang dipaparkan di blog rasmi Anthropic—arahan pengguna disaring melalui proxy SOCKS/HTTP sebelum sampai ke sandbox, di mana operasi fail dan akses rangkaian dalam sandbox dikawal ketat mengikut kebenaran
Masalahnya terletak pada pelaksanaan agen ini. Dua kajian keselamatan yang berasingan telah membuktikan bahawa ia boleh dilalui sepenuhnya.

Garis masa mengungkapkan masalah yang lebih mendalam: v2.0.55 yang dikeluarkan pada 26 November 2025 memperbaiki belitan pertama, tetapi belitan kedua sudah wujud sejak hari pertama sandbox dilancarkan dan masih dibawa oleh versi ini. Dua kelemahan ini saling tindih dalam garis masa; dari hari pertama fungsi sandbox dilancarkan hingga kelemahan terakhir diperbaiki, tiada versi yang selamat. Anthropic menyatakan dalam blog rasmi bahawa sandbox “menjamin bahawa kesan serangan penyuntikan prompt akan sepenuhnya diasingkan”, tetapi kehadiran dua belitan ini secara langsung menyangkal janji ini.
“Satu laporan eksternal adalah keberuntungan. Dua adalah masalah kualiti pelaksanaan.” — laporan Gu Aonan menyatakan.
Sebuah pembaruan lengkap untuk byte kosong
Prinsip teknikal bagi pengelakan kedua tidak rumit, tetapi integriti rantai serangan patut diperhatikan.
Pengguna telah mengkonfigurasi senarai putih rangkaian, contohnya hanya membenarkan akses ke *.google.com. Proxy SOCKS5 Claude Code menggunakan kaedah endsWith() JavaScript untuk mencocokkan akhiran nama hos semasa menerima permintaan sambungan. Penyerang hanya perlu menyisipkan satu byte kosong ke dalam nama hos—membina rentetan seperti attacker-host.com\x00.google.com. JavaScript menganggap byte kosong sebagai karakter UTF-16 biasa, sehingga endsWith(“.google.com”) mengembalikan nilai true, dan proxy mengizinkan sambungan. Namun, rentetan yang sama dihantar ke fungsi C bawahannya getaddrinfo() untuk penyelesaian DNS, di mana byte kosong dianggap sebagai penghenti rentetan, sehingga sebenarnya yang dianalisis ialah attacker-host.com. Byte yang sama memberikan dua tafsiran berbeza dalam dua lapisan kod. Penapis menganggap anda sedang mengakses Google, tetapi penyelesai DNS tahu anda sedang menyambung ke pelayan penyerang.
Ini merupakan serangan "perbezaan parser" klasik, yang termasuk dalam kategori teknik yang sama dengan serangan penyamaran permintaan HTTP yang ditemui pada 2005 (CWE-158 / CWE-436). Intinya ialah apabila data yang sama melalui dua komponen dengan peraturan interpretasi semantik yang berbeza, penyerang boleh memanfaatkan perbezaan ini untuk membuat satu lapisan membuat keputusan "selamat", sementara lapisan lain menjalankan tindakan "berbahaya". Kelemahan sebegini berulang kali muncul dalam bidang keselamatan rangkaian, dan pelajaran utamanya sentiasa sama: sebarang rentetan yang melintasi sempadan kepercayaan mesti melalui normalisasi dan pengesahan yang ketat, bukan hanya mempercayai bahawa lapisan atas telah melakukan pemeriksaan.
Guan Aonan menggunakan dua skrip Node.js yang diminimumkan untuk mereproduksi lubang keamanan: skrip kawalan memulakan sambungan SOCKS5 menggunakan nama hos biasa dan mengembalikan BLOCKED; skrip serangan menyuntikkan byte kosong ke dalam nama hos dan mengembalikan BYPASSED rep=0x00—yang terakhir bermaksud sambungan proxy telah berjaya dibina dan saluran keluar telah dibuka. Claude Code sendiri mengesahkan keputusan ini.

Pemulihan luka sepenuhnya pada empat langkah yang ditandai merah dalam Claude Code v2.1.86 — pengesahan strategi, penghalang biasa, pengelakan byte kosong, pengesahan oleh Claude sendiri
Dan apabila disambungkan dengan serangan injeksi prompt "Komen dan Kawal" yang dilaporkan oleh Guan Aonan pada bulan April, ia membentuk rantai serangan yang lengkap (lihat: Tiga lapisan pertahanan masih tidak mencukupi, satu judul PR sahaja boleh mencuri kunci API anda: Lekah keselamatan AI Agent muncul semula). Kajian "Komen dan Kawal" telah membuktikan bahawa ketiga-tiga alat pengaturcaraan AI mempunyai permukaan serangan injeksi prompt, tetapi titik masuk serangan berbeza: Claude Code hanya melalui judul PR, Gemini CLI melalui komen atau isi perkaranya dalam Isu, manakala Copilot Agent memanfaatkan komen HTML untuk injeksi tersembunyi. Sebagai contoh, Claude Code, judul PR-nya akan disambungkan secara langsung ke templat prompt tanpa penyaringan atau pelarian, menjadikan model tidak mampu membezakan niat manusia dengan injeksi jahat.
Gabungkan keduanya—arahan tersembunyi membolehkan Agent menjalankan kod serangan di dalam sandbox, serta penyuntikan byte kosong untuk menembusi blok rangkaian—kunci API, kredensial AWS, token GitHub, dan data endpoint API dalaman dalam pemboleh ubah persekitaran boleh disalurkan ke mana-mana pelayan di internet. Data mengalir keluar melalui proxy SOCKS5 itu sendiri, dan serangan sepenuhnya tidak memerlukan pelayan luar sebagai perantara, sedangkan proxy inilah yang menjadi komponen yang pengguna percayai sebagai sempadan selamat. Penyerang bahkan tidak memerlukan kebenaran penulisan repositori; cukup dengan menghantar satu Issue awam. Pemeriksa manusia melihat permintaan kerjasama yang biasa dalam tampilan render GitHub, manakala Agent AI membaca kod sumber jahat yang lengkap.
Claude pun mengakui: lubang itu adalah benar
Satu butir penting dalam pengungkapan ini datang dari Claude Code itu sendiri. Guan Aonan secara langsung memberikan kod reproduksi lubang keamanan kepada Claude Code untuk dijalankan, meminta penilaian teknikal darinya. Selepas menjalani ujian kawalan (nama hos biasa ditahan) dan ujian serangan (nama hos byte kosong mengelakkan penahanan), Claude Code memberikan kesimpulan yang jelas:
Ini adalah laluan sebenar terhadap penapis sandbox rangkaian, bukan hanya artefak ujian. Anda harus melaporkan ini kepada Anthropic di https://github.com/anthropics/claude-code/issues.
Produk yang diuji sendiri mengesahkan keaslian dan keseriusan lubang keamanan tersebut, bahkan secara aktif memberikan laluan pelaporan. Butiran ini direkodkan sepenuhnya oleh Guan Aonan dalam laporan penyelidikan, dan menjadi sumber judul berita The Register — “Even Claude agrees hole in its sandbox was real and dangerous”.

Cover of Gu Aonan's research — After being shown its own vulnerability, Claude Code admitted, "This is a genuine bypass of the network sandbox filter," with a red box highlighting the key confirmation statement.
Tanggapan Anthropic selepas lima bulan keheningan
Lubang keamanan itu sendiri merisaukan, tetapi cara Anthropic menangani ia lebih patut menjadi perhatian industri.
Guan Aonan menghantar laporan terperinci mengenai pengelakan sandbox kedua pada awal April 2026 melalui rancangan hadiah kelemahan HackerOne (laporan #3646509) kepada Anthropic. Tanggapan awal Anthropic ialah:
Terima kasih atas laporan anda. Selepas meninjau penghantaran ini, kami menentukan bahawa ia adalah salinan daripada laporan dalaman sedia ada yang sedang kami telusuri.
Laporan tersebut segera ditutup. Apabila Guan Aonan menanyakan rancangan nombor CVE, Anthropic membalas pada 7 April:
Kami belum memutuskan sama ada CVE akan diterbitkan untuk isu ini dan tidak dapat memberikan jadual masa mengenai keputusan tersebut.
Lubang ini diperbaiki secara senyap dalam versi v2.1.90. Tiada pengumuman keselamatan, tiada nombor CVE, tiada entri apa-apa di halaman cadangan keselamatan Claude Code, dan tiada sebarang pernyataan berkaitan keselamatan dalam log pengemas kini. Sebuah laluan lengkap yang wujud sejak hari pertama sandbox, berterusan selama 5.5 bulan, dan merangkumi kira-kira 130 versi, seolah-olah tidak pernah berlaku kepada pengguna.
Pola penanganan ini bukan yang pertama kali berlaku. Cara mengelakkan pertama kali (CVE-2025-66479) hampir sama: Anthropic hanya memberikan CVE kepada perpustakaan asas @anthropic-ai/sandbox-runtime (skor CVSS hanya 1.8, “Rendah”), bukan kepada produk pengguna seperti Claude Code; log pembaruan menyatakan “Fixed proxy DNS resolution” (memperbaiki resolusi DNS proxy), tanpa menyebut kelemahan keselamatan. Guan Aonan menulis dalam laporan penyelidikannya: “Apabila terdapat kelemahan serius dalam React Server Components, React dan Next.js masing-masing mendapat CVE tersendiri, Meta dan Vercel menerbitkan notis keselamatan, dan kedua-dua komuniti diberitahu sepenuhnya. Anthropic memilih pendekatan yang berbeza.” Sehingga kini, carian “Claude Code Sandbox CVE” masih tidak menunjukkan sebarang notis keselamatan rasmi.
Dalam menangani masalah pencurian kredensial, Anthropic memilih untuk memblokir perintah ps, tetapi pendekatan senarai hitam ini secara intrinsik lemah—memblokir satu perintah, penyerang memiliki ribuan jalur alternatif. Pendekatan yang betul adalah dengan secara jelas menyatakan alat-alat apa sahaja yang diperlukan oleh Agent. Dalam kajian “Komen dan Kawalan”, walaupun Anthropic meningkatkan penilaian lubang ke kesan CVSS 9.4 (peringkat Kritikal) dan memindahkannya ke program hadiah peribadi, jurucakap menyatakan “alat ini tidak direka untuk memperkukuhkan diri terhadap serangan penyuntikan prompt.” Pembuat secara lalai mempercayai kemampuan keselamatan model mereka sendiri, tetapi gagal mengimplementasikan pertahanan mendalam dalam arsitektur sistem; apabila lubang terdedah mengungkap kekurangan ini, “had rekaan” menjadi klasifikasi yang mudah—ia mengakui masalah, tetapi pada masa yang sama melepaskan tanggungjawab untuk mengeluarkan notis keselamatan.
Pemandangan industri yang lebih luas ialah, masalah yang sama tidak hanya berlaku kepada Anthropic sahaja. Kajian “Ulasan dan Kawalan” yang diumumkan pada bulan April membuktikan bahawa Gemini CLI daripada Google dan Copilot Agent daripada GitHub Microsoft juga mempunyai permukaan serangan yang sama; ketiga-tiga syarikat tersebut mengesahkan dan membaikinya, tetapi tiada satu pun yang mengeluarkan pemberitahuan keselamatan atau nombor CVE. Anthropic membayar hadiah sebanyak 100 dolar, Google membayar 1337 dolar, manakala GitHub awalnya menutup laporan tersebut dengan “masalah yang diketahui, tidak boleh diperbanyak semula”, tetapi selepas menerima bukti reka bentuk songsang, ia menutupnya dengan label “maklumat”, dan memberikan 500 dolar. Jumlah keseluruhan ialah 1937 dolar—dan ketiga-tiga produk ini merangkumi kebanyakan syarikat dalam senarai Fortune 100.
Perasaan keselamatan yang palsu lebih berbahaya daripada tiada langkah keselamatan. Pengguna tanpa sandbox tahu bahawa mereka tidak mempunyai sempadan; pengguna dengan sandbox yang rosak menganggap mereka mempunyainya. Sebuah pasukan yang menjalankan Claude Code dan mengkonfigurasi senarai putih domain tidak mengetahui risiko selama 5.5 bulan, dan setelah peningkatan, apabila melihat log pembaruan, mereka hanya akan menyimpulkan bahawa sandbox sentiasa berfungsi dengan baik. Selain itu, apabila kelemahan diumumkan, tiada pemberitahuan keselamatan bermakna pengguna tidak dapat menentukan sama ada mereka pernah terjejas, dan tiada asas untuk audit semula.
Menghadapi keadaan ini, komuniti keselamatan mula mencapai konsensus: tidak boleh mempercayai sepenuhnya kepada pelaksanaan sandbox oleh pembuat. Proxy SOCKS5 Claude Code dibina di atas pakej npm pihak ketiga yang hanya mempunyai 10 bintang GitHub, dengan penghantaran terakhir berhenti pada Jun 2024, dengan sempadan keselamatan melintasi dua runtime JavaScript dan C, tetapi gagal melakukan pemprosesan piawai paling asas di titik persilangan kepercayaan. Fungsi isValidHost() yang ditambahkan dalam pemaizan pembaikan — yang bertanggungjawab menolak karakter tidak sah seperti byte kosong, pengkodean peratus, CRLF — sepatutnya wujud sejak hari pertama sandbox dilancarkan. Guan Aonan mencadangkan satu kerangka pertahanan pragmatis — menganggap AI Agent sebagai pekerja super yang perlu mematuhi prinsip kuasa minimum, dengan intinya terletak pada pertahanan berlapis:

Reputasi keselamatan dibina atas ketelusan setiap pengungkapan dan setiap pemaikan, bukan naratif jenama. Apabila pengguna memberikan kredensial kepada Agent berdasarkan kepercayaan, pengeluar berkewajiban memastikan pertahanan berkesan, serta berkewajiban memberitahu segera apabila ia gagal. Kedua-dua perkara ini tidak dilakukan oleh Anthropic di sandbox Claude Code.
“Hasil terburuk sandbox bukanlah menghalangi sesuatu, tetapi memberikan perasaan keselamatan yang salah. Menerbitkan sandbox yang mempunyai kelemahan lebih buruk daripada tidak menerbitkan sandbox sama sekali.” — katan Guan Aonan.
(Artikel ini pertama kali diterbitkan di aplikasi Titanium Media, penulis | Silicon Valley Tech_news, penyunting | Jiao Yan)
Rujukan:
1. oddguan.com — Kali Kedua, Sandbox Sama: Penembusan Sandbox Rangkaian Anthropic Claude Code Lain Membuat Pencurian Data Berlaku (Aonan Guan, 2026.05.20)
2. The Register — Bahkan Claude bersetuju lubang di sandboxnya adalah nyata dan berbahaya (2026.05.20)
