Claude 読了 6 分

Claude Codeの『Yes, and don’t ask again』、便利さの裏でパスワードが漏れていた

Shiritomo編集部 @shiritomoAI_jp 2026年11月9日 更新
Claude Codeの『Yes, and don’t ask again』、便利さの裏でパスワードが漏れていた

GitHub上に公開されていた設定ファイル104,185件を調べたところ、1,122件に実在するパスワードやAPIキーがそのまま書き込まれていました。
セキュリティ企業Apiiroが2026年11月に公表した調査結果です。

日本語で指示を出すだけでアプリや業務ツールを作れるAnthropicのコーディングツール「Claude Code」は、エンジニアではない人たちの間にも急速に広がっています。
便利さの裏で起きていたのが、今回の調査が明らかにした漏洩の実態でした。
Claude Codeを触ったことがある人、これから使ってみようと思っている人にとっても他人事ではありません。

先に結論をまとめると:
– Claude Codeの「Yes, and don’t ask again(はい、今後は聞かないで)」という選択肢を選ぶと、コマンド承認の内容が設定ファイルにそのまま平文で保存される
– このファイルがパスワードやAPIキーを含んだままGitHubの公開リポジトリにコミットされ、実在する認証情報1,122件が見つかった
– これはAIモデル自体の問題ではなくツールの挙動の問題で、Apiiroは最新モデルでも同じ挙動を確認している。
使う側が設定ファイルを自分で確認する以外、今のところ防ぐ手立てはない

対策を呼びかける投稿も

やぎ(八木 利生太郎)さん(@yagiryuuu)は11月8日の夜、Claude Codeの「Yes, and don’t ask again」を選ぶとパスワードが漏れてしまう仕組みと、今日からできる対策をまとめたリンクを投稿していました。

ただ、この1件の投稿だけでは、具体的にどういう仕組みで漏れるのか、どこまで深刻なのかまではわかりません。
そこでApiiroの調査原文と、これを報じた複数の海外メディアの記事を確認してみました。

調べて分かったこと

なぜ「もう聞かない」を選ぶとパスワードが漏れるのか?

Claude Codeは、ファイル削除やコマンド実行など何らかの操作をするたびに、ユーザーに実行の許可を求めます。
このとき表示される選択肢の一つが「Yes, and don’t ask again」です。
これを選ぶと、「このコマンドは今後確認なしで実行してよい」という承認の内容が、プロジェクト内の.claude/settings.local.jsonというファイルに書き込まれます。

問題は、この承認の中にパスワードやAPIキーが含まれていた場合、それが暗号化されずそのままの文字列でファイルに残ってしまう点です。
本来は自分のパソコンの中だけに留まるはずのファイルですが、他のコードと一緒にGitでコミットされ、GitHubの公開リポジトリにそのままpushされてしまうケースが多発していました。

見つかった認証情報はどれくらいの規模か?

Apiiroが調べたのは、GitHub上で公開されていた同種の設定ファイル104,185件です。
このうち1,122件に、実際に使われているパスワードやAPIキーなどの機密情報が最低1件含まれていました。

さらに、チーム用の設定ファイルや古いバージョン、保存されたAIエージェントのチャットログまで含めて数えると、合計2,539件の機密情報が1,994個のリポジトリにわたって見つかったとされています。
内訳では、データベースのパスワードが379件、Supabaseのサービスロールキーが122件と、特定のサービスに関わる認証情報が大きな割合を占めていました。

なお、Apiiroは見つかった認証情報が実際にログインなどに使える状態かどうかまでは検証していません。
件数が多いことは確かですが、そのすべてが今すぐ悪用可能というわけではない点には注意が必要です。

Claude Codeというツール特有の問題なのか?

Apiiroが指摘しているのは、これがAIモデルの性能や賢さの問題ではなく、Claude Codeというツールの挙動そのものの問題だということです。
同社は最新の複数のAIモデルに切り替えて検証しても、同じ仕組みで平文保存が再現できたと報告しています。
つまり、どのAIモデルを使っていても、この確認ダイアログの仕様自体が変わらない限り同じリスクが残ることになります。

すでに使っている人は何に気をつければいいのか?

今のところ、複数の海外メディアが共通して挙げている対策は地味なものです。
「Yes, and don’t ask again」を安易に選ばず、コマンド承認の内容を都度確認すること、そして.claude/settings.local.jsonのようなローカル設定ファイルをGitの管理対象から外す(.gitignoreに加える)ことです。
すでに公開リポジトリにpushしてしまっている場合は、そのファイルを削除するだけでは履行履歴に残り続けるため、該当するパスワードやAPIキー自体を発行し直す(無効化して再発行する)ことが必要になります。

Shiritomo編集部の考察:便利さが先に広がり、確認は後からついてくる

今回の件で気になるのは、非エンジニアの間でClaude Codeのようなツールが広がる速さと、設定ファイルの中身を意識する習慣が追いついていないギャップです。
SNS上の発信を見ていても、「こんなことが日本語の指示だけでできた」という成果の共有は多い一方、どの許可を与えたか、何がどこに保存されているかという話はあまり注目されません。
これは過去に.envファイルがAPIキーを含んだままGitHubに公開され続けてきた問題とも地続きで、ツールが変わっても起きることは変わらない、ということでしょう。
AIコーディングツールが増えるほど、同じ型の漏洩は今後も繰り返されると見ておいたほうが良さそうです。

まとめ

Claude Codeの「もう聞かない」という便利な機能が、実在するパスワードやAPIキーの漏洩につながっていました。
使い勝手の良さに任せきりにせず、設定ファイルの中身を自分の目で確かめる手間は今後も省けなさそうです。

さらに深掘りしたい方へ