Claude Code Desktopの脆弱性、悪意あるHTMLで開発者の認証情報が窃取される恐れ

Noma Labsは、Claude Code Desktopに深刻度の高い脆弱性が存在し、悪意あるHTMLファイルがプレビューペイン経由でローカルの認証情報や秘密鍵を盗み出せたことを明らかにしました。

Noma Labsの研究者は、Anthropicのデスクトップアプリ「Claude Code Desktop」に深刻度の高い脆弱性を発見しました。悪意あるHTMLファイルによって、開発者のマシンから認証情報や秘密鍵を窃取できる問題です。「SneakPeek」と名付けられたこの脆弱性には、CVSSスコア8.7が付けられました。

攻撃の仕組み

この脆弱性を発見したのは、Norma Labsのシニア脆弱性研究者Eli Ainhorn氏です。影響を受けたのは、Claude Code Desktopのプレビューペインでした。Claudeがhtmlファイルを読み取ったり変更したりする際、このペインはElectronのChromiumベースのレンダリングエンジンを使ってファイルを表示します。

研究者は、プレビューの保護を突破するために連携して働く3つのセキュリティ上の弱点を見つけました。256KB未満のファイルは、JavaScriptの実行をブロックするコンテンツセキュリティポリシー(CSP)付きのdata: URLとして読み込まれます。一方、それより大きなファイルはfile:// URLs経由で読み込まれ、CSPが適用されませんでした。さらに、Claudeがディスク上の静的HTMLファイルを直接レンダリングする場合、リクエストフィルターがローカルファイルへのアクセスをブロックできていませんでした。

CompareSecurity

Noma Labsは、悪意あるJavaScriptを仕込んだコードカバレッジレポートを含む公開リポジトリを使い、この攻撃を実演しました。開発者がこのリポジトリをクローンし、Claudeにレポートのレビューや編集を依頼すると、プレビューペインがファイルを開いた時点でペイロードが作動します。スクリプトは、別途の許可確認が表示されることなく実行されました。

スクリプトはfetch()を使ってローカルの機密ファイルを読み取れました。対象は、SSH秘密鍵、AWS認証情報、GitHubやnpmのトークン、Dockerレジストリの認証情報、Gitのアイデンティティ情報、Kubernetesの認証情報、ClaudeのOAuthトークンなどです。盗んだデータは、navigator.sendBeacon() APIを使って攻撃者の管理するサーバーに送信されました。

今回の発見は、日常的なコードレビュー作業が、別途の許可確認なしに開発用の機密認証情報を危険にさらしかねないことを示しています。

最初のパッチと最終的な修正

Noma Labsは2026年7月4日にこの脆弱性をAnthropicに報告しました。Anthropicは7月9日にトリアージを行い、CVSS v4.0スコア8.7を割り当てました。

Anthropicは7月24日、file:// pathsに対するfetch()とXMLHttpRequestの直接リクエストをブロックする最初のパッチを展開しました。しかしNoma Labsの研究者は同日、このパッチを回避する手法を示しました。ファイルの読み取りリクエストを、blob: URLから作成したWeb Workerに移す方法です。Workerは引き続き機密ファイルを読み取り、その内容をメインスレッドに渡して外部へ送信できました。

Anthropicは8月3日、修正が不完全だったことを認めました。Noma Labsによると、同社は残る問題をClaude Desktopのバージョン1.30096.1以降で対処し、8月17日の自動アップデートで配信しました。

研究者による報告の時点では、CVEの割り当てとGitHub Advisoryの公開はまだ保留中でした。

Hackread.comにコメントを寄せたサイバーセキュリティの専門家らは、SneakPeekは信頼できないファイルを処理するAIツールのリスクを浮き彫りにしたと指摘しています。特に、機密性の高い認証情報が置かれた開発者のマシン上でそうしたツールが動作する場合は危険だといいます。

AuditSecurity

SysdigのシニアサイバーセキュリティストラテジストであるCrystal Morin氏は、「SneakPeekは、AIツールにも固有の攻撃対象領域があることを思い知らされる出来事です」と述べました。さらに、「AIのセキュリティは大半がモデルに集中しています。学習、安全フィルター、システムプロンプトなどです。SneakPeekはモデルの失敗ではなく、その周囲のアプリケーションに潜んでいました」と続けました。

Morin氏は、防御側にとっての可視性の課題にも触れ、「悪意あるスクリプトはプレビューペインのレンダリングプロセス内で実行されました。エージェントが取った行動ではないため、エージェントレベルのログには記録されないと考えられます」と説明しました。

AcalvioのCEOであるRam Varadarajan氏は、「一見すると軽微な3つの欠陥が連鎖し、クリックなしでAWS認証情報やSSH鍵が盗まれました。Nomaが最初のパッチを回避した事実は、より大きな教訓を示しています。どんな予防策も、単一の層だけでは永遠に持ちこたえられないということです」と語りました。

同氏は、侵害の可能性を検知する手段として、おとりの認証情報の活用を推奨しています。「開発者のマシンと、AIエージェントが到達できる経路に、モデルを意識したおとりの認証情報を仕掛けてください。エージェントが正常に動作しているか侵害されているかにかかわらず、それに触れれば確度の高いアラートが得られます。悪用されている脆弱性がまだ分かっていなくても有効です」と述べました。

翻訳元: https://hackread.com/claude-code-desktop-flaw-html-steal-credentials/

本記事は hackread.com の記事を翻訳・要約したものです。