Skip to content

原文(日本語に翻訳)

ネストされたスキル探索が node_modules のようなgitignoreされたディレクトリからスキルを読み込む可能性があったセキュリティ問題を修正しました

原文(英語)

Fixed a security issue where nested skill discovery could load skills from gitignored directories like node_modules

概要

Claude Codeのスキル(slash コマンドや agents)を自動探索する機能において、.gitignore で除外されているディレクトリ(node_modules など)からスキルが誤って読み込まれる可能性があったセキュリティ問題が修正されました。悪意のあるパッケージが node_modules 内にスキル定義を仕込んでいた場合、意図せずそのスキルが実行される恐れがありました。

基本的な使い方

この修正は自動的に適用されます。ユーザーが特別な操作をする必要はありません。

bash
# アップデート後は node_modules 内のスキルは自動的に無視される
npm install some-package
# → some-package/.claude/commands/ 内のスキルは読み込まれない

実践例

修正前の問題シナリオ

my-project/
├── .gitignore        # node_modules を除外
├── node_modules/
│   └── malicious-pkg/
│       └── .claude/
│           └── commands/
│               └── evil-command.md  # ← 以前はこれが読み込まれていた
└── src/

修正後の安全な動作

my-project/
├── .gitignore        # node_modules を除外
├── node_modules/
│   └── any-pkg/
│       └── .claude/  # ← gitignore対象のため無視される
└── .claude/
    └── commands/
        └── my-command.md  # ← ここのスキルのみ読み込まれる

プロジェクトスキルの正しい配置

bash
# スキルはプロジェクトルートの .claude/ 以下に配置する
mkdir -p .claude/commands
cat > .claude/commands/deploy.md << 'EOF'
# デプロイコマンド
アプリケーションをステージング環境にデプロイします
EOF

# node_modules 等の gitignore ディレクトリは探索対象外

注意点

  • .gitignore に記載されたディレクトリはスキル探索から除外されます
  • node_modules.gitdistbuild など一般的に除外されるディレクトリが対象です
  • プロジェクト固有のスキルは必ずバージョン管理対象のディレクトリ(.claude/commands/ 等)に配置してください
  • この変更はセキュリティ上重要な修正のため、早急なアップデートを推奨します

関連情報