Claude Code 脆弱性|攻撃経路・危険な版と更新・確認方法
「Claude Codeに脆弱性はあるのか」「今使っている版は安全か」と不安な開発者向けの記事です。公開されたセキュリティアドバイザリを、実際の攻撃条件・影響・修正版に分け、更新前後に確認する項目と、sandboxや権限設定でリスクを抑える運用まで整理します。
Claude Codeには、古い版でコマンド注入、サンドボックス脱出、WebFetch経由の情報流出につながる公開脆弱性がありました。最新版へ更新し、信頼できないリポジトリを直接開かない・権限とsandboxを絞ることで、現在の影響範囲と対策を確認できる。
目次 (7)
Claude Codeの脆弱性は「本体」と「生成コード」を分けて考える
「Claude Code 脆弱性」という検索語には、二つの問題が含まれます。一つはClaude Code本体の実装不備、もう一つはClaude Codeで作ったアプリケーションにSQLインジェクションや認証不備が残る問題です。前者はバージョンと公式アドバイザリ、後者はコードレビューや依存パッケージ検査で確認します。
2026年9月17日時点で、AnthropicのClaude Code Security Advisoriesには、sandbox脱出、コマンド注入、信頼確認の回避など複数の公開記録があります。常に最新版が危険という意味ではなく、影響版・入力・権限を切り分けて判断するための情報です。
公開アドバイザリで確認できる主な脆弱性
検索結果で目立つ「危険」という表現だけでなく、影響版、修正版、攻撃条件を確認しましょう。代表例は次のとおりです。
| 識別子 | 影響版と修正版 | 内容 |
|---|---|---|
| CVE-2026-25722 | < v2.0.57 → v2.0.57 |
ディレクトリ移動と書き込みで保護対象への制限を回避できるコマンド注入。High、CVSS 7.7。 |
| CVE-2026-54316 | >= 0.2.54, < 2.1.163 → 2.1.163 |
WebFetchの事前許可パスを悪用し、未信頼コンテンツ経由で情報を外部へ送る経路。Moderate、CVSS 6.0。 |
| CVE-2026-55607 | >= 2.1.38, < 2.1.163 → 2.1.163 |
Git worktreeとシンボリックリンクを悪用し、sandbox外へ書き込む可能性。High、CVSS 7.7。 |
いずれも、悪意あるリポジトリや外部情報をコンテキストに入れる条件が重要です。上の3件だけで全件ではなく、GitHubの一覧には/copyの一時ファイル、Windows設定、SSHホスト鍵検証などの記録もあります。利用中の版は、個別ページのAffected versionsとPatched versionsで照合してください。
どんな条件で攻撃が成立するのか
脆弱性の説明では、攻撃者の準備と利用者の操作を分けて読みます。README、issue、Webページなどに「このコマンドを実行する」「別URLへ送る」といった指示が混ざると、目的外の操作へ誘導されることがあります。これはプロンプトインジェクションと呼ばれる入力側のリスクです。
sandboxを無効にしている、書き込み先を広く許可している、秘密情報をホームディレクトリに置いている、といった条件が重なるほど影響は大きくなります。出所不明のリポジトリは、秘密情報のない使い捨て環境で読み取りと編集を分け、外部送信先を限定して確認してください。
今使っている環境を確認する5手順
古い版を使っているか分からない場合は、次の順で確認します。
claude --versionで版を記録する。複数のインストールがありそうなら、macOS/Linuxではwhich claude、PowerShellではGet-Command claudeも確認する。- Native版は
claude update、npm版は公式手順に従いnpm install -g @anthropic-ai/claude-code@latestで更新する。HomebrewやWinGetは各アップグレードコマンドを使う。 - 更新後に版を再確認し、影響範囲から外れたことと、起動している実体が別のインストール先でないことを確認する。
- 影響版で未信頼の入力を処理した場合は、実行履歴と差分を確認し、APIキー・クラウド認証情報・SSH鍵を必要に応じて失効・再発行する。
- 秘密情報のない検証用リポジトリで読み取り・テスト・編集を確認し、インストール方法、版、確認日を記録する。
公式ページでは、Native版の自動更新と、Homebrew・WinGet・npm版の更新方法が分けて案内されています。自動更新を無効にした環境は、誰がアドバイザリ公開後の更新を承認するかまで決めておきます。
sandboxと権限設定で被害を抑える
修正版へ更新したうえで、作業中の影響範囲も絞ります。Claude Code公式のsandboxドキュメントでは、ファイルシステムとネットワークの境界をOSレベルで適用できます。セッションで/sandboxを実行して状態を確認してください。
設定例です。パスやドメインは環境に合わせて置き換えます。
{
"sandbox": {
"enabled": true,
"allowUnsandboxedCommands": false,
"failIfUnavailable": true,
"filesystem": {
"denyRead": ["~/.aws", "~/.ssh"],
"allowWrite": ["./"]
},
"network": {
"allowedDomains": ["github.com", "registry.npmjs.org"]
}
}
}
allowUnsandboxedCommandsをfalseにすると隔離外への自動再試行を止め、failIfUnavailableでsandboxなしへの切り替えを防げます。ただし、sandboxは古い脆弱性を消す機能ではありません。読み取り権限、接続先、明示的に許可した操作は別途見直します。
/security-reviewで見つけられるもの
Claude Codeには、作成したコードを確認する/security-reviewがあります。Anthropicの公式案内では、SQLインジェクション、XSS、認証・認可、データ処理、依存関係を確認できると説明されています。ターミナル実行とGitHub ActionsのPR確認に対応します。
これは既存の対策や手動レビューの補完です。依存パッケージ検査、秘密情報スキャン、静的解析、テスト、差分確認を組み合わせてください。作成したコードの確認と、Claude Code本体のGHSA・CVE確認は別作業です。
公式情報を追跡するチェックポイント
脆弱性情報は、SNSの短い投稿や「危険」という見出しだけで判断しません。次の情報源で、更新時に同じ項目を確認します。
- GitHub Security Advisories:GHSA、CVE、深刻度、影響版、修正版を確認する。
- Claude Code Securityページ:報告窓口と公開アドバイザリへの入口を確認する。
- Claude Code公式セットアップ:更新コマンドと
claude doctorを確認する。
自分で脆弱性を見つけた場合は、公開前にAnthropicのHackerOneプログラムから報告します。「安全か」の二択ではなく、影響版、入力、読み書きと通信の境界を定期的に確認することが実務的な対策です。