• Claude Codeの「次回から確認しない」を選ぶと、実行したコマンドが丸ごと設定ファイルに保存される
  • コマンドにパスワードが入っていると、そのまま保存されてGitHubに公開される恐れがある
  • Apiiroの調査で、GitHub上から2,539件の秘密情報が見つかった
  • Anthropic側の見解と、開発者が今すぐできる対策
  • 日本の開発チームが確認したいポイント

Claude Codeで「Yes, and don’t ask again」を押したことはありませんか? 実は確認の手間を省くこの選択が、パスワードをGitHubに公開してしまう原因になっていました。この記事では、何が起きたのかと、今日からできる対策をまとめます。

何が起きた?Apiiroが2,539件の秘密情報を発見

セキュリティ企業のApiiroが、2026年11月5日に調査結果を公開しました。GIGAZINEの報道によると、GitHub上で見つかった秘密情報(パスワードやAPIキーなど、他人に見せてはいけない情報)は合計2,539件です。

調べたのは、Claude Codeが作る設定ファイル「.claude/settings.local.json」です。公開されていた同名のファイルは10万4,185件ありました。

そのうち1,122件のファイルに、秘密情報が含まれていました。関わっている組織は63にのぼります。

医療記録データベースの管理者パスワードや、決済サービスの本番用の認証情報も見つかったと報じられています。

なぜ漏れる?「次回から表示しない」の仕組み

コマンドが丸ごと保存される

Claude Codeは、コマンドを実行する前に「実行してよいですか?」と聞いてきます。ここで「Yes, and don’t ask again(許可して次回から確認しない)」を選ぶと、そのコマンドが設定ファイルに記録されます。

問題は、コマンドの文字列がそのまま保存されることです。たとえばデータベースに接続するコマンドにパスワードを直接書いていたら、パスワードも一緒に残ります。

Gitの除外設定だけでは守れない

この設定ファイルは、本来は自分のPCの中だけに置くものです。ところが、うっかりGit(ソースコードの変更履歴を管理する仕組み)に登録すると、GitHubへ公開されてしまいます。

Gitの除外設定(.gitignore)は、個々のPCに保存されます。別のPCでは効きません。しかも、一度Git管理に入ったファイルは、除外設定を足しても守れません。

調査結果の数字を読み解く

見つかった秘密情報の内訳は次のとおりです。

  • サービスのAPIトークン:398件(1位)
  • データベースのパスワード:379件(2位)
  • Git変更履歴、チーム共有設定、AIとの会話記録などからの追加分:1,160件

ファイルが大きいほど危険でした。8KB以上の設定ファイルでは、9.9%に秘密情報が含まれていました。長く使うほど「次回から確認しない」の記録が増えるためです。

もうひとつ気になるのが、検出ツールの限界です。一般的な2種類のツールで調べたところ、秘密情報を含む1,122件のうち215件は、どちらにも見つかりませんでした。

パスワードは「ただのコマンドの一部」として記録されます。決まった形式のキーを探すツールは、これを見逃しやすいのです。

以前にも似た問題が報告されていた

実は、似た問題は春にも指摘されていました。セキュリティ企業Lakeraの調査をTechTalksが2026年4月に報じています。

npm(JavaScriptの部品を配るサービス)のパッケージ約4万6,500件を調べたところ、428件に同じ設定ファイルが入っていました。そのうち30パッケージの33ファイルには、使える状態の認証情報がありました。

今回の調査はGitHubが舞台で、規模がずっと大きくなっています。公開の場所が違っても、原因は同じ「コマンドの丸ごと保存」です。

Anthropicの見解と対応

Claude Codeの開発責任者ボリス・チェルニー氏は、2026年11月7日にHacker Newsでコメントしました。

氏によると、Claude Codeはこのファイルを作るときに、Gitの除外対象にする仕組みを備えています。なので、漏れたファイルは手作業で作られてGitに登録されたものだろう、という見方です。

一方で、Claude Codeは秘密情報を消す処理をこれまで行ってこなかった、とも認めています。認証情報を見つける仕組みの追加や、自動モードで秘密情報の保存を防ぐ方法を検討中です。

議論の中では反対意見もありました。「許可リストは結果が決まっているが、AIに自分の行動を審査させるのは不確実だ」という声です。この点は、まだ決着していません。

対策と他の守り方の比較

守り方はいくつかあります。特徴を並べます。

  • 環境変数を使う:パスワードをコマンドに直接書かない。いちばん手軽で、今すぐできる
  • シークレット管理サービスを使う:必要なときだけ短時間の権限で取り出す。TechTalksの記事で推奨されている方法
  • 自動モード:許可の確認をAIの判定に任せる。チェルニー氏は安全で管理しやすいと主張するが、評価の基準が曖昧だという批判もある
  • サンドボックス(隔離環境):コマンドが触れる範囲をOSの仕組みで制限する。守りは固いが、使えるよう調整する手間がかかる

すでに漏れてしまった場合は、ファイルを消すだけでは足りません。公開履歴に残った認証情報を無効にして、新しく発行し直すことが必要です。

加えて、チェルニー氏はGitHubなどでシークレットスキャン(秘密情報の自動検出機能)を有効にすることを勧めています。

日本の開発チームへの影響

日本でもClaude Codeを使う開発者は増えていて、他人事ではありません。

たとえば、受託開発の会社を考えてみましょう。メンバー5人がそれぞれ「次回から確認しない」を押しながら、顧客のデータベースにつなぐコマンドを実行します。1人が設定ファイルをうっかりコミットすれば、顧客の本番環境のパスワードが公開リポジトリに載ってしまいます。

個人開発者の場合も同じです。趣味のアプリをGitHubに置いたとき、決済サービスのキーが混ざっていたら、不正利用につながる恐れがあります。

会社としては、CI(自動でテストや検査をする仕組み)に「.claude/ が公開物に入っていたら失敗させる」ルールを入れる方法があります。TechTalksも同様の対策を挙げています。

よくある質問(FAQ)

Q. 自分のリポジトリは大丈夫?

A. .claude/settings.local.json がGitに登録されていないか確認してください。中身にパスワードやトークンがないかも見ておくと安心です。

Q. 「次回から確認しない」はもう使わない方がいい?

A. 使うこと自体が悪いわけではありません。パスワードを含むコマンドでは避け、環境変数に置き換えましょう。

Q. すでに公開してしまったらどうする?

A. ファイルを消すだけでは不十分です。履歴に残った認証情報を無効にして、再発行してください。

Q. シークレットスキャンがあれば十分?

A. 十分とは言えません。今回の調査では、215件が一般的な2種類のツールのどちらにも検出されませんでした。

まとめ

  • 「次回から確認しない」は、コマンドをパスワードごと設定ファイルに保存する
  • GitHub上で2,539件の秘密情報が見つかった
  • 検出ツールが見逃すものも多く、1,122件中215件は見つからなかった
  • パスワードは環境変数やシークレット管理サービスに移す
  • 漏れたら、削除ではなく認証情報の再発行が必要

まずは自分のリポジトリで、.claude/settings.local.json がGitに入っていないか確認しましょう。

参考文献