Apa yang terjadi
Sebuah kerentanan injeksi-argumen CVSS 9.2 (v4.0) di SubprocessCLITransport._build_command: opsi resume diteruskan ke Claude CLI sebagai token argv terpisah tanpa validasi, sehingga nilai yang diawali tanda hubung diurai sebagai flag CLI baru. Penyerang dapat menyuntikkan flag --mcp-config untuk mendaftarkan server MCP stdio dan mencapai eksekusi perintah arbitrer saat startup CLI, melewati gerbang izin SDK. Diperbaiki di 0.2.121; diverifikasi oleh NVD REST (dipublikasikan 2026-10-16).
Mengapa penting
Ini mengubah pola otomatisasi-agen yang umum — melanjutkan sesi Claude Code dengan ID sesi yang disuplai eksternal — menjadi eksekusi kode arbitrer pada mesin yang menjalankan agen tersebut. Ini adalah kelas serangan injeksi-flag CLI baru di SDK milik Anthropic sendiri: penjaga agen tidak pernah melihat atau menyetujui server MCP yang disuntikkan, sehingga referensi sesi beracun yang diambil dari permintaan web, pesan, atau dokumen yang diinjeksi-prompt dapat diam-diam menjalankan kode penyerang dengan izin Claude Code penuh pengguna.
Vektor serangan
Transport subproses membangun argv CLI Claude sebagai dua token terpisah (["--resume", nilai]). Karena CLI memperlakukan nilai yang diawali tanda hubung sebagai flag baru, penyerang yang mengendalikan nilai resume dapat menyuntikkan --mcp-config untuk mendefinisikan server MCP stdio, sehingga perintah arbitrer berjalan saat startup CLI di luar kontrol izin SDK. Dipicu ketika aplikasi melanjutkan sesi dengan input yang dipengaruhi penyerang.
Sistem yang terdampak
anthropics/claude-agent-sdk-python < 0.2.121
Mitigasi
Tingkatkan ke claude-agent-sdk-python 0.2.121 (commit 347a1cb; GHSA-h4mw-j7qp-8mwm). Perbaikan mengeluarkan --resume=<nilai> sebagai satu token sehingga nilai yang diawali tanda hubung ditolak sebagai ID sesi yang tidak valid; --session-id diperketat dengan cara yang sama. Perlakukan pengenal sesi/resume apa pun yang disuplai pemanggil sebagai tidak tepercaya hingga ditingkatkan.