AnthropicのAIコーディング支援ツールClaude Codeにおいて、ネットワークサンドボックスの許可リストを迂回できる脆弱性が研究者により発表されました。
研究者のAonan Guan氏によると、問題はClaude Codeのネットワークサンドボックスで使われるSOCKS5プロキシのホスト名処理にありました。ユーザーが *.google.com のような許可ドメインを設定していても、攻撃者が attacker-host.com\x00.google.com のようなホスト名を使うことで、許可リスト判定を通過し、実際には攻撃者が管理するホストへ接続できる可能性があったと説明されています。
Guan氏は、この問題がClaude Code v2.0.24でネットワークサンドボックスが一般提供された2025年10月20日から、v2.1.90が公開された2026年4月1日まで存在していたと説明しています。Claude Code公式の変更履歴では、v2.1.90に複数の修正が記載されていますが、このSOCKS5 NULLバイト迂回をセキュリティ修正として明示する記載は確認できません。
この記事のサマリー
Claude Codeのネットワークサンドボックスに、許可ドメインの判定を迂回できる問題があったと研究者が公表しました。
問題はSOCKS5ホスト名にNULLバイトを含めることで、JavaScript側の許可判定とOS側の名前解決に差が生じる点です。
研究者によると、Claude Code v2.0.24からv2.1.89までが影響を受け、v2.1.90で修正されたとされています。
プロンプトインジェクションと組み合わせると、Claude Codeが扱える認証情報、環境変数、ソースコード、内部データを外部送信される恐れがあります。
Anthropicは、研究者の報告前に問題を特定して修正していたとSecurityWeekに説明しています。
Claude CodeやAIコーディングエージェントを利用する組織は、バージョン確認、サンドボックス設定、ネットワークログ、開発端末上のシークレット管理を確認する必要があります。
何が起きたか
Guan氏は、Claude Codeのネットワークサンドボックスに2つの迂回問題があったと説明しています。
1つ目はCVE-2025-66479として記録された問題で、allowedDomains: [] を「外部通信をすべて禁止」と解釈すべきところ、実装上は「制限なし」と扱ってしまうものでした。この問題は sandbox-runtime のv0.0.16で修正され、Claude Codeではv2.0.55で修正されたとされています。
2つ目が今回報じられたSOCKS5ホスト名のNULLバイト注入です。Guan氏は、Claude Code v2.0.24からv2.1.89までの全リリースが、少なくともどちらか一方のネットワークサンドボックス迂回に影響を受けていたと主張しています。
今回のSOCKS5 NULLバイト迂回は、Claude Code v2.1.90で修正されたと研究者は説明しています。Claude Code公式の変更履歴では、v2.1.90が2026年4月1日に公開されていることは確認できますが、このネットワークサンドボックス迂回を明示したセキュリティ項目は見当たりません。
Claude Codeのネットワークサンドボックスとは
Claude Codeは、Anthropicが提供するAIコーディング支援ツールです。コードベースを読み取り、編集し、コマンドを実行しながら、開発作業を支援するエージェント型のツールです。Anthropicは、Claude Codeがコードベースやファイルに深くアクセスするため、プロンプトインジェクション時のリスクを下げる目的でサンドボックス機能を導入したと説明しています。
Anthropicの説明では、Claude Codeのサンドボックスは、ファイルシステム分離とネットワーク分離の2つの境界を提供します。ファイルシステム分離はアクセスできるディレクトリを制限し、ネットワーク分離はClaude Codeが接続できるサーバを承認済みの宛先に限定します。Anthropicは、ネットワーク分離がなければ、侵害されたエージェントがSSH鍵のような機密情報を外部送信できると説明しています。
Claude Codeのネットワーク分離では、サンドボックス内のプロセスが外部通信する際、ローカルのプロキシを経由します。このプロキシが許可ドメインを確認し、許可されていない宛先への接続を遮断する設計です。
サンドボックス迂回とは
今回の問題は、ネットワークサンドボックスの許可リスト判定と、OS側のホスト名解釈の差を突くものです。
研究者の説明では、ユーザーが *.google.com のように特定のドメインだけを許可していた場合でも、攻撃者が attacker-host.com\x00.google.com のようなホスト名を使うと、JavaScript側のフィルタは末尾が .google.com であると判断して許可します。一方、OS側の名前解決ではNULLバイトで文字列が切り詰められ、実際には attacker-host.com に接続される可能性があります。
この種の問題は、文字列を扱う層によって解釈が異なる場合に発生します。今回の場合、許可リストの判定はJavaScript側で行われ、実際の名前解決はOS側で行われます。その境界でNULLバイトの扱いが異なることにより、サンドボックスのネットワーク制御が期待どおりに機能しない状態になっていました。
Guan氏は、Claude CodeのサンドボックスがOSレベルの仕組みによってプロセスをlocalhostに閉じ込めていても、外部通信の可否判断をホスト側で動くSOCKSプロキシに委ねているため、プロキシをだませばホスト側が接続してしまうと説明しています。(
原因
原因は、SOCKS5プロキシが受け取るホスト名を、許可リスト判定に使う前に十分に正規化・検証していなかったことです。
研究者の説明によると、脆弱な実装では、SOCKSリクエストのDOMAINNAMEバイト列がJavaScript側の endsWith() 判定に渡されていました。このときNULLバイトや特殊文字を拒否する処理がなければ、JavaScript側では許可ドメインに見える一方、OS側の名前解決ではNULLバイト以降が切り捨てられる可能性があります。
Guan氏は、修正後の sandbox-runtime 0.0.43では、isValidHost() によりNULLバイト、パーセント記号、CRLFなどの非DNS文字を拒否するようになったと説明しています。
この問題は、AI固有のモデル挙動というより、サンドボックス境界を実装する通常のソフトウェアセキュリティ上の問題です。ただし、Claude CodeのようなAIエージェントでは、攻撃者がプロンプトインジェクションによってエージェントに通信処理を実行させる可能性があるため、通常のCLIツールよりも悪用シナリオが広がります。
想定される攻撃シナリオ
研究者は、この迂回がプロンプトインジェクション攻撃と組み合わされた場合に特に危険だと説明しています。
たとえば、開発者がClaude CodeにGitHub Issue、Pull Requestコメント、外部ドキュメント、README、CI/CDログなどを読ませた場合、その中に隠れた指示が含まれていると、AIエージェントが攻撃者の意図する操作を実行する可能性があります。SecurityWeekは、Guan氏が別途公表したComment and Controlというプロンプトインジェクション手法に触れ、GitHubコメント、PRタイトル、Issue本文などを通じてAIエージェントが乗っ取られる可能性があります。
影響範囲
研究者によると、影響を受けるのはClaude Code v2.0.24からv2.1.89までです。v2.1.90で修正されたとされています。
ただし、実際のリスクは利用状況によって変わります。Claude Codeのネットワークサンドボックスを有効にし、許可ドメインを設定したうえで、エージェントに機密情報へアクセスできる状態を与えていた環境では影響が大きくなります。
特に注意が必要なのは、Claude Codeを開発端末、CI/CD、社内リポジトリ、クラウド操作、Kubernetes管理、データベース管理、認証情報を含む設定ファイルの近くで使っている環境です。Claude Codeが読み取れる範囲に .env、SSH秘密鍵、GitHubトークン、npmトークン、クラウド認証情報、kubeconfig、Terraform stateなどがある場合、プロンプトインジェクションと外部通信が組み合わさった際の影響が大きくなります。
現在の対応
研究者によると、今回のSOCKS5 NULLバイト迂回はClaude Code v2.1.90で修正されました。v2.1.90の公式変更履歴には複数の修正が記載されていますが、該当するサンドボックス迂回をセキュリティ修正として明示する記載は確認できません。
また、GitHub上のClaude CodeのSecurity Advisoriesには複数のセキュリティアドバイザリが掲載されていますが、今回のSOCKS5 NULLバイト迂回に対応する個別アドバイザリは、確認した範囲では見つかりませんでした。
即時対応:情報システム・開発部門が確認すべきポイント
Step 1:Claude Codeのバージョンを確認する
まず、開発端末、CI/CD、検証環境で利用しているClaude Codeのバージョンを確認してください。
claude –version
研究者の説明では、v2.0.24からv2.1.89までが影響対象で、v2.1.90以降で修正されたとされています。現在利用中の環境では、できるだけ最新バージョンへ更新してください。(Aonan Guan)
Step 2:sandbox-runtimeのバージョンも確認する
Claude Codeのサンドボックス機能は sandbox-runtime を利用しています。過去のCVE-2025-66479では、@anthropic-ai/sandbox-runtime 0.0.16より前で、allowedDomains: [] が意図どおりに外部通信を遮断しない問題がありました。(NVD)
npm list @anthropic-ai/sandbox-runtime
Claude Code本体だけでなく、直接 sandbox-runtime を利用している社内ツールやAIエージェント実行環境がないかも確認してください。
Step 3:サンドボックス設定を確認する
Claude Codeでネットワークサンドボックスを利用している場合、許可ドメイン設定を確認してください。
確認すべき項目は以下です。
確認項目
内容
allowedDomains
本当に必要な宛先だけが許可されているか
ワイルドカード
*.example.com のような広い許可を多用していないか
外部API
Claude Codeが接続できる外部サービスを把握しているか
内部ネットワーク
社内IP、メタデータAPI、管理系URLへ到達できないか
設定の所在
ユーザー個別設定と組織管理設定が混在していないか
サンドボックスは安全性を高める仕組みですが、設定と実装に依存します。許可リストを設定しているから安全と考えるのではなく、実際に想定外の外部通信が遮断されるかを検証してください。
Step 4:脆弱期間中の外部通信を確認する
v2.0.24からv2.1.89までのClaude Codeを使っていた環境では、サンドボックス内から想定外の外部通信がなかったか確認してください。
確認対象は以下です。
ログ
見るべき内容
プロキシログ
Claude Code実行端末からの未知ドメイン宛通信
DNSログ
NULLバイトや不自然なホスト名を含むリクエストの痕跡
EDRログ
Claude Code、Node、Bash、curl、wget、Pythonなどの外部通信
FWログ
開発端末やCI/CDランナーからの通常外の送信
CI/CDログ
Claude Code実行中の外部接続や環境変数参照
NULLバイトそのものがログに残らない場合もあるため、許可した覚えのない外部ホストへの通信、Claude Code実行時刻と近い不審通信、開発端末からの異常なデータ送信を合わせて確認してください。
Step 5:Claude Codeが触れられるシークレットを棚卸しする
Claude Codeが読める範囲にある認証情報を棚卸ししてください。
確認対象は以下です。
種別
例
GitHub
Personal Access Token、GitHub CLI認証情報、SSH鍵
クラウド
AWS、GCP、Azureのローカル認証情報
パッケージ
npm、PyPI、Docker Hub、GitHub Packagesのトークン
インフラ
kubeconfig、Vault token、Terraform state
アプリ
.env、設定ファイル、DB接続文字列
CI/CD
GitHub Actions Secret、環境変数、ビルドログ
脆弱なバージョンのClaude Codeを使い、サンドボックス内で機密情報にアクセス可能だった場合は、外部送信の痕跡が確認できなくても、重要な認証情報のローテーションを検討してください。
Step 6:プロンプトインジェクション対策を確認する
Claude CodeのようなAIエージェントは、ユーザーが直接入力したプロンプトだけでなく、リポジトリ内のドキュメント、Issue、Pull Requestコメント、設定ファイル、ビルドログ、外部文書の内容にも影響を受ける可能性があります。
以下を確認してください。
確認項目
内容
外部PR
信頼できないPRの本文やコメントをAIに読ませていないか
Issue
外部投稿可能なIssue本文をAIエージェントが処理していないか
README
第三者リポジトリのREADMEや手順をそのまま実行していないか
CI/CD
GitHub Actions上のAIエージェントに本番シークレットを渡していないか
自動実行
AI出力を人間レビューなしでコマンド実行していないか
CI/CD・AIエージェント利用で確認すべき設定
Claude CodeをCI/CDや自動レビュー、セキュリティレビュー、コード生成フローに組み込んでいる場合、AIエージェントを通常の開発ツールではなく、コード実行環境として扱う必要があります。
確認すべき項目は以下です。
項目
確認内容
権限分離
AIエージェントが本番シークレットに触れない構成か
ネットワーク
外部送信先を実際に制限できているか
ファイル
読み取り可能なディレクトリが必要最小限か
実行
AIが生成したコマンドを自動実行しない設計か
ログ
AI実行時のコマンド、通信、ファイルアクセスが残るか
トークン
長期トークンではなく短命トークンやOIDCを利用しているか
Anthropic自身も、Claude Codeのサンドボックスについて、ファイルシステム分離とネットワーク分離の両方が必要であり、片方だけでは機密ファイルの外部送信やサンドボックス外への影響を防ぎきれないと説明しています。
参考情報・出典
関連
セキュリティ対策Lab:AnthropicのClaude Code ソースコードが漏洩-概要やセキュリティへの影響
この記事をシェアする
メールマガジン
最新のセキュリティ情報やセキュリティ対策に関する情報をお届けします。
投稿者:三村
セキュリティ製品を手がける上場企業にて、SOC(セキュリティオペレーションセンター)運営およびWebアプリケーション脆弱性診断の営業に8年間従事。その後、システムエンジニアへ転身し、MDMや人事系SaaSの開発に携わる。
8年の実務経験と開発者としての知見を活かし、「セキュリティ対策Lab」ではダークウェブ調査、セキュリティインシデントの分析、および高度なセキュリティ対策解説の執筆・編集を統括しています。
LinkedIn(外部サイト)