結論:2026年11月11日時点で、Claude Code の 2.1.251 より前の版には、macOS で Bash のサンドボックス(シェルのコマンドを決めた範囲に閉じ込める機能)の中で動く処理が、作業フォルダの外のファイルを上書きしうる脆弱性 CVE-2026-88968(深刻度 High)があり、2.1.251 で直っています。標準の自動更新を使っている人には修正がもう届いていて、手で更新している人は最新版に上げます。
- 要点1:対象は npm(JavaScript の部品を公開・入手する仕組み)のパッケージ @anthropic-ai/claude-code の 2.1.251 より前の版です。直った版 2.1.251 は日本時間の2026年8月29日に出ていて、11月10日時点の最新版は 2.1.322 です
- 要点2:勧告によると、悪用するには攻撃者のコードをサンドボックスの中で動かせること(悪意のあるリポジトリや、依存するパッケージのスクリプトなど)が要ります。実際に悪用されたという記載はありません
- 要点3:Homebrew・WinGet・apt などで入れた端末や、自動更新を止めている端末は、手で更新するまで古い版のままです。会社では、版を固定している設定も見直します
対象読者:会社で Claude Code を使う開発者・情報システムの担当者、Claude Code の利用を認めている会社の管理者
読了後にできること:claude --version で自分の版を確かめ、2.1.251 より前なら入れ方に合った方法で更新して起動し直すところまで、今日のうちに進められます。会社として見直す設定(自動更新・版の固定・知らないリポジトリの扱い)は、記事の最後の「まとめ」の順に、今週から今月にかけて進めます。
2026年11月11日時点で、Claude Code の脆弱性 CVE-2026-88968 は、2.1.251 以降の版を使っていれば対象ではありません(GitHub の勧告 GHSA-5xjx-9qx6-jcrv)。CVE は脆弱性に付く世界共通の番号で、GHSA は GitHub が勧告に付ける番号です。直った版 2.1.251 は日本時間の2026年8月29日に出ていて、勧告は Claude Code のリポジトリで10月26日に公開され、日本時間の11月10日に GitHub の勧告データベースにも載りました。
対象かどうかは claude --version で分かり、2.1.251 より前なら入れ方に合ったコマンドで更新します。会社では、自動更新が止まった端末と、版を固定している設定を探します。この記事は、GitHub の勧告、米国の脆弱性のデータベース NVD、Claude Code のリリースノートと公式の文書をもとに書きました。版と日付の情報は、2026年11月10日時点で公開の記録を確認したものです。
CVE-2026-88968とは|確認と書き込みの間のずれ
CVE-2026-88968 は、Claude Code がファイルを書き換える時に使う道具「Edit」で、書き込み先を確かめた時と実際に書き込む時の間にずれがあり、作業フォルダ(ワークスペース)の外のファイルに書き込まれうる、という脆弱性です。勧告の題は「Claude Code: TOCTOU Race in Edit Tool Allows File Writes Outside the Workspace」で、GitHub の深刻度は High(高)です(GitHub の勧告・Claude Code のリポジトリの勧告)。

題にある TOCTOU は「確かめた時と使う時のずれ」(Time-of-check to time-of-use)、シンボリックリンクは「別の場所を指す目印のファイル」のことです。Bash のサンドボックスは、Claude Code が動かすシェルのコマンドを OS の仕組みで決めた範囲に閉じ込める機能で、既定はオフです。Read・Edit・Write などのファイルの道具は、この外で動きます(公式の文書「Configure the sandboxed Bash tool」)。この言葉を使って、勧告の説明を順に書きます。
- Claude Code は、Edit で書き換える先を、その時点のパス名(ファイルの場所を表す文字列)と、シンボリックリンクをたどった結果で確かめていました。この確認は、OS が中でフォルダを見分ける番号(inode)や、開いたファイルを指す番号(ファイル記述子)には結び付いていませんでした
- そのため macOS では、Claude Code の Bash のサンドボックスの中で動く処理が、確認の後に作業フォルダの中のフォルダをシンボリックリンクに差し替えると、サンドボックスの外で動く Edit が、作業フォルダの外にある、利用者が書き込めるファイルを上書きしうる状態でした
- 悪用するには、攻撃者のコードをサンドボックスの中で動かせることが要ります。勧告は例として、悪意のあるリポジトリや、依存するパッケージのスクリプトを挙げています
日付は 4 つあります。直った版が先に出て、勧告とデータベースへの掲載が後から続きました。
| 日付(日本時間) | 出来事 | 出典 |
|---|---|---|
| 2026年8月29日 | 直った版 2.1.251 のリリース(GitHub の記録では 8月28日 18:19 UTC) | v2.1.251 のリリース |
| 2026年10月26日 | Claude Code のリポジトリで勧告を公開 | リポジトリの勧告 |
| 2026年11月4日 | NVD(米国 NIST の脆弱性のデータベース)に載る | NVD |
| 2026年11月10日 | GitHub の勧告データベースに、GitHub が確認した勧告として載る | GitHub の勧告 |
11月10日の掲載には実務の意味があります。GitHub の文書によると、Dependabot(依存するパッケージの脆弱性を知らせる GitHub の機能)の通知を有効にしたリポジトリは、依存するパッケージに GitHub が確認した新しい勧告が出ると、自動で知らされます(GitHub Docs「GitHub Advisory database」)。@anthropic-ai/claude-code の古い版に依存しているリポジトリでは、この日から通知が出ることがあります。
対象の版と直った版|2.1.251より前が対象
対象は、npm のパッケージ @anthropic-ai/claude-code の 2.1.251 より前の版で、直った版は 2.1.251 です(GitHub の勧告・NVD)。2.1.251 以降の版なら対象ではない、ということになります。

| 項目 | 内容 |
|---|---|
| パッケージ名 | @anthropic-ai/claude-code(npm) |
| 対象の版 | 2.1.251 より前(勧告の書き方は「< 2.1.251」) |
| 直った版 | 2.1.251(日本時間の2026年8月29日に公開) |
| 勧告が書いている条件 | macOS で、Claude Code の Bash のサンドボックスの中で攻撃者のコードが動くこと |
| 深刻度 | High(GitHub の勧告)。CVSS(深刻さを 0〜10 で表す共通の物差し)4.0 の基本値は 7.7 で、勧告と NVD に GitHub が付けた値として載っています。NVD 自身の評価は、11月10日時点で「not yet provided(まだ無い)」です |
| 弱点の種類(CWE) | CWE-59(ファイルを開く前のリンクのたどり方の誤り)・CWE-367(確かめた時と使う時のずれ) |
| 11月10日時点の最新版 | latest(出た版がすぐ届く既定の更新の経路)は 2.1.322、stable(約1週間前の版を使う更新の経路)は 2.1.311(npm の公開の記録) |
直った版 2.1.251 のリリースノートには、「Read・Write・Edit のファイルの道具が、許可の確認の後に作業フォルダの中で差し替えられたシンボリックリンクをたどり、許された場所の外を読み書きしうる点を直した」という 1 行があります(v2.1.251 のリリース・CHANGELOG の 2.1.251)。勧告が対象にしているのは macOS の Edit ですが、このリリースノートの 1 行は OS を限っていません。
版の番号は、点で区切った数を左から比べます。2.1.99 は最後の数 99 が 251 より小さいので前の版、つまり対象です。VS Code の拡張機能は、版の番号が中の Claude Code の版と同じなので、同じように比べられます(公式の文書「Use Claude Code in VS Code」)。
自分の版の確かめ方と更新のしかた
確かめ方は、ターミナルで claude --version を打って、出てきた版の番号を 2.1.251 と比べるだけです(公式の文書「Advanced setup」)。2.1.251 より前なら、入れ方に合った方法で更新して、起動し直します。

手順は次の 5 つです。
- ターミナルで
claude --versionを打ちます。版の番号のあとに「(Claude Code)」と付いた 1 行が出ます - 出てきた版の番号を 2.1.251 と比べます。2.1.251 以降なら、この脆弱性の対象ではありません
- 2.1.251 より前なら、下の表のうち、入れ方に合ったコマンドで更新します
- 開いている Claude Code を終了して、起動し直します。公式の文書によると、自動更新はバックグラウンドで入り、次に起動した時から効きます
- もう一度
claude --versionで版を確かめ、claude doctorの「Auto-updates」の行で、自動更新が有効か、最後の更新が失敗していないかを見ます
claude --version
claude doctorclaude doctor は、会話を始めずに、インストールと設定の状態を読むだけで表示するコマンドです。入れ方ごとの自動更新の有無と、手で更新する時のコマンドは次のとおりです(どれも公式の文書「Advanced setup」にある物です)。
| 入れ方 | 自動更新 | 手で更新する時のコマンド |
|---|---|---|
| 公式のインストーラー(ネイティブ) | する(既定でバックグラウンド) | claude update |
| Homebrew | 既定ではしない | brew upgrade claude-code(claude-code@latest で入れたなら brew upgrade claude-code@latest) |
| WinGet | 既定ではしない | winget upgrade Anthropic.ClaudeCode |
| apt(Debian・Ubuntu) | しない(OS の更新で入る) | sudo apt update && sudo apt upgrade claude-code |
| dnf(Fedora・RHEL) | しない(OS の更新で入る) | sudo dnf upgrade claude-code |
| apk(Alpine Linux) | しない(OS の更新で入る) | apk update && apk upgrade claude-code |
| npm のグローバル | する(グローバルのフォルダに書き込めない時は失敗し、起動時に 1 回知らせる) | npm install -g @anthropic-ai/claude-code@latest |
npm では npm update -g を避けます。最初に入れた時の版の範囲に従い、最新版まで上がらないことがある、と公式の文書は書いています。
更新のコマンドの使い方は「Claude Codeアップデート|updateと更新確認」に、入れ方ごとの手順は「Claude Code インストール方法|Mac・Windows・Linux」にまとめています。
悪用の条件と影響の範囲|勧告に書かれていること
勧告と NVD が書いている条件は、次の 3 つです。3 つがそろった時に、作業フォルダの外のファイルが上書きされうる、というのが今回の脆弱性の範囲です(GitHub の勧告・NVD)。

- macOS で Claude Code を使っていること
- Claude Code の Bash のサンドボックスの中で、処理が動いていること
- 攻撃者のコードを、そのサンドボックスの中で動かせること(例:悪意のあるリポジトリ、依存するパッケージのスクリプト)
影響として勧告が書いているのは、作業フォルダの外にある、攻撃者が選んだ、利用者が書き込めるファイルの上書きです。勧告にも NVD の説明にも、実際に悪用された、情報が漏れた、という記載はありません。米国政府のサイバーセキュリティの機関 CISA が「実際の悪用を確認した脆弱性」を載せる一覧 KEV にも、11月9日版(11月10日に確認)では載っていません(CISA の KEV)。ただし、載っていないことは「悪用されていない」という意味ではありません。
心当たりがある時(気づいた後)に確かめること
macOS で 2.1.251 より前の版を使い、サンドボックスを有効にしたまま知らないリポジトリを開いた心当たりがある端末では、次の 4 つを進めます。勧告は確かめ方を書いていないので、公式の文書の注意書きをもとにした一般の確認です。
- 先に 2.1.251 以降へ更新し、Claude Code を起動し直します
- 覚えのない変更が無いかを見ます。公式のサンドボックスの文書は、
.bashrc・.zshrcのようなシェルの設定ファイルや、$PATHに入っている実行ファイルの置き場への書き込みが、別の場面でのコードの実行につながりうると書いています(公式の文書「Configure the sandboxed Bash tool」)。まずこれらから見ます - 書き換えられたファイルがあれば、バックアップか、設定ファイルを Git で管理していればその履歴から戻します
- 知らないコードが動いた心当たりがあるなら、その端末に置いた鍵(API キー・アクセストークン)を替えます。公式の文書によると、サンドボックスの中のコマンドは既定で
~/.sshや~/.aws/credentialsのような鍵のファイルも読めます。本番やクラウドに届く鍵、AI のサービスの API キー、MCP サーバー(外のサービスとつなぐ仕組み)のトークンから先に替えます
会社の端末なら、自分で消したり直したりする前に、情報システムの担当に知らせます。何がいつ変わったかの記録を残すためです。
戻せるか
今回の影響は「上書き」なので、戻せるかは戻す元があるかで決まり、バックアップにも履歴にも無いファイルは戻せません。ホームフォルダの設定ファイル(シェルの設定・Git の設定など)が端末のバックアップに入っているか、Git などで履歴を残しているかを、今のうちに確かめておきます。
会社で確かめること|更新・版の固定・知らないリポジトリ
会社で確かめるのは、自動更新が止まった端末、版を固定している設定、知らないリポジトリの扱い、サンドボックスの設定の 4 つです。勧告は「標準の自動更新の利用者には修正が届いている」と書いているので、会社の仕事は、標準から外れている端末と設定を見つけることになります。

1. 自動更新が止まった端末
次の端末は、手で更新するまで古い版のままです(公式の文書「Advanced setup」)。
- Homebrew・WinGet・apt・dnf・apk で入れた端末(既定で自動更新しない)
- 設定ファイルの
env(環境変数を決める欄)でDISABLE_AUTOUPDATERを 1 にしている端末(バックグラウンドの確認だけが止まり、claude updateは使える) DISABLE_UPDATESで手での更新まで止め、自社の手順で決めた版を入れている端末- npm のグローバルのフォルダに書き込めず、自動更新に失敗している端末
どの状態かは、各端末の claude doctor の「Auto-updates」の行と、最後の更新の結果で分かります。Homebrew と WinGet は、環境変数 CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE を 1 にすると、Claude Code が更新のコマンドを代わりに動かします。
2. 版を固定している設定
管理対象の設定(managed settings=管理者が端末に入れる、利用者が変えられない設定)で requiredMaximumVersion(起動を許す一番新しい版)を 2.1.251 より前にしていると、自動更新も claude update もその版より上に進みません(公式の文書「All settings」)。社内のコンテナのイメージや導入の手順で、版の番号を指定して入れている所も見直します。
逆に、古い版を起動させないようにするには requiredMinimumVersion を使います。これより古い版は起動時に終了し、組織の決めた方法で更新するよう表示されます。確認は起動の時だけで、動いている会話は続きます。管理対象の設定の中でだけ使え、Claude Code の 2.1.163 以降で効きます。
{
"requiredMinimumVersion": "2.1.251"
}似た名前の minimumVersion は更新の下限を決める設定で、起動は止めません。Dependabot の通知を有効にしているなら、自社のリポジトリに通知が出ていないかも見ます。@anthropic-ai/claude-code の古い版に依存している所を探す手がかりになります。
3. 知らないリポジトリの扱い
公式の文書によると、まだ信頼していないフォルダで起動すると「信頼の確認」の画面が出ますが、-p(対話の画面を開かずに、1 回の指示だけを動かす使い方)では出ません(公式の文書「Security」)。同じ文書は、知らない中身を扱う時は提案されたコマンドを承認の前に見て、スクリプトを仮想マシンの中で動かすよう勧めています。社外のリポジトリや、レビューしていない依存を入れる作業は、Claude Code 全体を dev container(開発用のコンテナ)や sandbox runtime(処理全体を囲む公式の部品)の中で動かす、と決めておくと迷いません。
4. サンドボックスの設定
サンドボックスを全員に使わせる時は、管理対象の設定で enabled を true にし、failIfUnavailable(使えない端末では起動しない)と allowUnsandboxedCommands: false(失敗したコマンドをサンドボックスの外でやり直させない)を合わせて入れる例が、公式の文書にあります(公式の文書「Configure the sandboxed Bash tool」)。既定では中から鍵のファイルが読めるので、sandbox.credentials で ~/.ssh や ~/.aws を守る設定も足します。Windows で直接動かす端末は failIfUnavailable で起動しなくなるため、OS ごとに設定を分けるか、WSL2(Windows の中で Linux を動かす仕組み)やコンテナで使います。
使い方の研修や注意の呼びかけだけでは、端末に残った古い版は直りません。版は requiredMinimumVersion のような設定と claude doctor の確認で、仕組みとして見ます。会社での設定の全体は「Claude Codeセキュリティ設定|企業導入の必須対策」にもまとめています。
この記事の内容を社内で使うなら
要点と手順をまとめた資料を無料で受け取れます。研修6,000名以上・支援100社以上の実績をもとに、自社の業務に当てはめる相談も30分から受け付けています。
【要注意】よくある読み違い3つ
読み違い1:Windows や Linux でも同じ条件で起きる
❌ 「macOS 以外の端末でも、同じことが同じ条件で起きる」と言い切る
⭕ 勧告と NVD が条件として書いている OS は macOS だけで、Windows や Linux については何も書いていません。一方、2.1.251 のリリースノートのファイルの道具の修正の 1 行は OS を限っていないので、どの OS の端末も 2.1.251 以降にしておきます。なお、サンドボックスは macOS・Linux・WSL2 で動き、Windows で直接動かす時はコマンドがサンドボックスなしで動きます(公式の文書)。
読み違い2:サンドボックスがあれば何でも安全
❌ 「サンドボックスを有効にしたので、知らないリポジトリで何を動かしても安全」
⭕ 公式の文書は、サンドボックスは危険を減らすが完全な隔離の境界ではない、と書いています。囲むのはシェルのコマンドと、そこから起動した処理だけで、ファイルの道具・MCP サーバー・フック(決まった時に自動で動く処理)は外で動きます。今回の脆弱性も、サンドボックスの中の処理と、外で動く Edit の境目で起きました。強く分けたい時は、Claude Code 全体を dev container や sandbox runtime の中で動かす方法が公式の文書にあります。
読み違い3:11月に出た勧告なので、まだ直っていない
❌ 「勧告が11月に出たばかりだから、直った版はまだ無い」
⭕ 直った版 2.1.251 は日本時間の8月29日に出ていて、勧告(10月26日)やデータベースへの掲載(11月4日・11月10日)より先です。11月10日時点の latest は 2.1.322、stable は 2.1.311 で、どちらも 2.1.251 より後です。ただし、修正が届いているのは標準の自動更新の利用者で、自動更新が止まった端末や版を固定している端末は別に確かめます。
よくある質問
自分の Claude Code が CVE-2026-88968 の対象か、どう確かめればいいですか?
ターミナルで claude --version を打ち、出てきた版の番号を 2.1.251 と比べます。2.1.251 以降なら対象ではなく、2.1.99 のように最後の数が 251 より小さい版は対象です。VS Code の拡張機能は、拡張機能の画面に出る版の番号で比べます。ターミナルの Claude Code と拡張機能の両方を入れているなら、両方を確かめます。
自動更新にしていれば、何もしなくて大丈夫ですか?
勧告は、標準の自動更新の利用者には修正が自動で届いている、と書いています。ただし Homebrew・WinGet・apt・dnf・apk で入れた端末は既定で自動更新せず、自動更新を止める設定がある端末も古い版のままです。また自動更新は次に起動した時から効きます(公式の文書)。claude --version と claude doctor で一度は確かめておきます。
VS Code の拡張機能で使っている場合はどうすればいいですか?
公式の文書によると、拡張機能は中に Claude Code の CLI(コマンドで使う版)の写しを持っていて、拡張機能の版の番号は、中の Claude Code の版と同じです。拡張機能の画面で版を見て、2.1.251 より前なら拡張機能を更新します。VS Code の中のターミナルで打つ claude は別に入れた CLI なので、claude --version で別に確かめます。拡張機能の設定は「VSCode×Claude Code連携の使い方|自動承認・設定」にまとめています。
実際に悪用されたという情報はありますか?
勧告と NVD の説明に悪用の記載は無く、CISA の KEV(実際の悪用を確認した脆弱性の一覧)にも11月9日版では載っていません。ただし、載っていないことは悪用されていないという意味ではありません。心当たりがある時の確かめ方は、上の「心当たりがある時(気づいた後)に確かめること」にまとめました。
サンドボックスを使っていなければ、関係ありませんか?
勧告が書いている条件は Bash のサンドボックスの中で動く処理で、サンドボックスを使っていない場合については書いていません。公式の文書によると、サンドボックスは既定でオフで、サンドボックスが無い時、承認した Bash のコマンドは利用者のアカウントが書き込める所ならどこにでも書き込めます(公式の文書「Security」)。どちらでも、版は 2.1.251 以降にし、知らないリポジトリを開く時の決まりを作っておきます。
まとめ
Claude Code の CVE-2026-88968 は、macOS で Bash のサンドボックスの中の処理が、外で動く Edit に作業フォルダの外のファイルを上書きさせうる脆弱性で、日本時間の8月29日に出た 2.1.251 で直っています。やることは、版を確かめて、標準の自動更新から外れた端末と設定を見つけることです。
- 今日やること:
claude --versionと、VS Code の拡張機能の版を見ます。2.1.251 より前なら入れ方に合ったコマンドで更新し、起動し直します - 今週中:会社の端末で、自動更新が止まった端末(Homebrew・WinGet・apt などで入れた端末、自動更新を止める設定がある端末)と、版を固定している設定を洗い出します
- 今月中:管理対象の設定で
requiredMinimumVersionを使うかを決め、知らないリポジトリを開く時の決まり(コンテナや仮想マシンの中で動かす)と、サンドボックスの設定をそろえます
参考・出典
- Claude Code: TOCTOU Race in Edit Tool Allows File Writes Outside the Workspace(GHSA-5xjx-9qx6-jcrv・CVE-2026-88968) — GitHub Advisory Database(参照日: 2026-11-10)
- TOCTOU Race in Edit Tool Allows File Writes Outside the Workspace — anthropics/claude-code のセキュリティ勧告(参照日: 2026-11-10)
- CVE-2026-88968 Detail — NIST National Vulnerability Database(参照日: 2026-11-10)
- Release v2.1.251 — anthropics/claude-code(参照日: 2026-11-10)
- CHANGELOG.md(2.1.251 の項) — anthropics/claude-code(参照日: 2026-11-10)
- @anthropic-ai/claude-code の dist-tags — npm レジストリ(参照日: 2026-11-10)
- Advanced setup — Claude Code Docs(参照日: 2026-11-10)
- Configure the sandboxed Bash tool — Claude Code Docs(参照日: 2026-11-10)
- Security — Claude Code Docs(参照日: 2026-11-10)
- All settings — Claude Code Docs(参照日: 2026-11-10)
- Use Claude Code in VS Code — Claude Code Docs(参照日: 2026-11-10)
- GitHub Advisory database — GitHub Docs(参照日: 2026-11-10)
- Known Exploited Vulnerabilities Catalog — CISA(参照日: 2026-11-10)
この記事の内容を社内展開する方へ: Claude Code・Codex 法人導入のセキュリティ設定ガイド(無料・PDF 32ページ+Excel/Word) をダウンロードできます。


