- 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に入っていないか確認しましょう。
参考文献
- Claude Codeの「次回から表示しない」でパスワードが流出する恐れ、GitHubで2539件の秘密情報が見つかる(GIGAZINE)
- Claude Code is leaking API keys into public package registries(TechTalks)
- Hacker News上のボリス・チェルニー氏のコメント(Hacker News)
- I spent 25 years avoiding malware. Claude Code stored 600 of my secrets anyway(DEV Community)
- Configure permissions(Claude Code Docs)