本文へスキップ
Claude Media
Claude Code v2.1.38 — VS Codeリグレッション修正とサンドボックス境界の強化

Claude Code v2.1.38 — VS Codeリグレッション修正とサンドボックス境界の強化

Claude Code v2.1.38は7件のfix/hardeningを束ねたパッチ版。直前のv2.1.37で発生したVS Codeターミナルリグレッションを修正し、heredocのコマンドスムーグリングや.claude/skillsへの書き込みなどサンドボックス境界も静かに強化しています。

読了目安 約6

このリリースで何ができるようになるか

Claude Code v2.1.38は新機能を含まない7件のfix / hardening構成のパッチですが、3つの性格が同居しており、Skillsをチームで運用しているチームには実運用上ありがたい版です。

  • v2.1.37で発生したVS Codeターミナルのスクロール位置リグレッションを修正
  • 環境変数ラッパー経由のbash許可照合と、heredocデリミタ解析のコマンドスムーグリングを塞ぐ権限境界の強化
  • サンドボックスモードで.claude/skillsへの書き込みをブロック(エージェント自身がSkillsを書き換える経路を封じる)

あなたの開発フローはどう変わるか

VS Code拡張でClaude Codeを使っているチーム

直前のv2.1.37で混入したリグレッション2件が直撃する層です。

  • ターミナル上で勝手に先頭までスクロールしてしまう挙動
  • resume時にVS Code拡張でセッションが二重に生成される問題

スクロール位置はログ出力が多いタスクを走らせているときに視界が勝手に先頭へ飛ぶという、作業中断につながる挙動だったため、VS Code拡張ユーザーは速やかに更新する価値があります。

bash許可ルールを敷いている運用

bashパーミッション照合の穴は、たとえばFOO=bar ls /tmpのように環境変数ラッパー経由で呼ばれたコマンドを、ルール側のlsと照合できずに通してしまう類の挙動でした。ユーザーがlsを許可しているつもりでも、ラッパーが被った瞬間に別コマンド扱いになれば、許可 / 拒否のメンタルモデルが崩れます。本版でここが揃いました。

heredocデリミタ解析は、<<EOFのデリミタを偽装してコマンドを紛れ込ませる、いわゆるコマンドスムーグリングへの対処です。許可済みのbash tool経由で意図しない別コマンドが実行される経路を絞る修正で、ユーザーが見た文字列と実際に実行される文字列をずらさない、という地味に重要な整合性確保です。

サンドボックスモード + Skillsを運用しているチーム

.claude/skillsへの書き込みブロックは、sandboxモード下でSkillsの中身をエージェント自身に書き換えさせないための封じです。Skillsはプロジェクト / ユーザーの「ふるまい定義」を格納する場所で、ここが書き換え可能だと、一度信用したSkillの挙動を後から静かに変えられる余地ができてしまいます。書き込みを落としておくことで、Skillsは人間(またはCIの明示的な変更フロー)が更新する対象という前提が守られます。

ただしこれは既存の動作を止める種類の変更です。エージェント自身に.claude/skillsを自動更新させるワークフローを組んでいた場合は、sandboxモードを外すか、Skills更新を人間側 / sandbox外CI側に寄せる運用への切り替えが必要になります。

入力 / 表示まわりで小さな違和感があった層

  • スラッシュコマンド入力中のTabキーが、補完ではなくコマンドをキューに積んでいた問題が修正
  • streaming無効時にtool useとtool useの間に出る地の文が消えていた問題が修正

Tabは「補完が走ると思って押したら意図せず送信されていた」という、体が覚えている操作がずれるタイプの不具合で、入れ替わると違和感が消えます。後者は--no-stream相当のモードや一部のCI利用で顕在化していた見た目のバグで、ログ保全・再現性の観点で重要です。

主な変更点

直前のv2.1.37のリグレッション対応

項目内容
VS Codeターミナルスクロールv2.1.37で入った、ターミナル上で勝手に先頭までスクロールしてしまう挙動を修正
VS Code拡張の重複セッションresume時にVS Code拡張でセッションが二重に生成される問題を修正

入力・UIまわりの不整合

項目内容
Tabキーの挙動スラッシュコマンド入力中にTabを押すと補完ではなくコマンドがキューに積まれていた問題を修正
tool use間テキストの消失streaming無効時に、tool useとtool useの間に出る地の文が消えていた問題を修正

セキュリティ・権限境界の強化

項目内容
bashパーミッション照合環境変数ラッパー経由で呼ばれたコマンドの照合漏れを修正
heredocデリミタ解析コマンドスムーグリング(隠しコマンド混入)を防ぐ解析改善
.claude/skillsへの書き込みサンドボックスモードで該当ディレクトリへの書き込みをブロック

3つの境界強化が示す方向性

hardening 3件をまとめて読むと、Claude Codeが実行するシェル入力とファイル書き込みの境界を、ユーザーの意図通りに一致させにいっている流れが見えます。

bash許可照合の穴は、ユーザーが許可したつもりのコマンドがラッパーに被られた瞬間に別コマンド扱いになる類の不整合でした。許可 / 拒否のメンタルモデルを揃えるための修正です。

heredocデリミタ解析は、<<EOFのデリミタを偽装してコマンドを紛れ込ませる経路を絞る修正で、ユーザーが見た文字列と実際に実行される文字列をずらさない、という整合性確保です。

.claude/skills書き込みブロックは、Skillsを「人間が承認したふるまい定義」として保護する設計です。エージェント自身に書き換えを許すと、一度信用したSkillの挙動を後から静かに変えられる余地ができるため、sandboxモード下では書き込みを落として明示的な更新フローに寄せる、という方針が打ち出されています。

総じて、本版のセキュリティ関連修正はClaude Codeの「信頼境界の設計」を実装側で追いつかせる作業と言えます。前後で続いている「sandbox強化」「permission整合」の流れに素直に乗った版です。

前後版との位置付け

v2.1.37 / v2.1.38 / v2.1.39を並べると、リグレッション発覚から短いサイクルで修正・拡張が入っていくClaude Code特有の開発テンポが見えます。

主な内容位置づけ
v2.1.37/extra-usage有効化直後に/fastが使えない問題の修正(1件)小UX修正だが、副作用でVS Codeターミナルにリグレッションを混入
v2.1.387件(リグレッション修正 + サンドボックス強化)v2.1.37の後始末 + 境界強化
v2.1.39ターミナル描画性能改善・致命エラー可視化など5件入力 / 描画 / プロセスのさらなる安定化

v2.1.37は1行のパッチだったにもかかわらずVS Code側で副作用を引き、翌版で打ち消しにかかっている構図です。1項目の修正でも端末・拡張・セッション管理といった層をまたぐため、小粒なパッチにこそバージョン間の整合確認が要るという構図が読み取れます。v2.1.39では端末描画性能の改善と並んで「致命エラーが握り潰されて表示されない」修正が入っており、本版で境界を整えたうえで観測性を上げにきている順序もきれいに見えます。

まとめ

  • VS Code拡張でClaude Codeを使っているなら速やかに更新: スクロール位置リグレッションとresume時の重複セッション2件が直撃
  • sandbox + Skills運用なら前提を見直すタイミング: .claude/skills書き込みブロックでエージェント自身の自動更新は止まる
  • bash許可allowlistを細かく敷いているなら更新推奨: env / ラッパー経由の照合穴とheredocスムーグリングが塞がれる
  • CLIのみ・sandbox未使用なら任意: Tab補完とtool use間テキストの表示改善程度

更新はclaude updateで取得できます。

この記事を共有:XLinkedIn