同ツールのHTMLプレビュー機構に欠陥があり、悪意あるJavaScriptがローカルファイルにアクセスしてクラウドの認証情報を外部へ持ち出せる状態でした。
AnthropicのClaude CodeにHTMLファイルのレビューを依頼するだけで、攻撃者に開発者のマシン、クラウドの認証情報、ソフトウェア開発環境へのアクセスを許してしまう恐れがあることが、Noma Securityの新たな調査で明らかになりました。
Nomaの研究者らは、AnthropicのClaude Codeデスクトップアプリに脆弱性を発見しました。HTMLファイルに埋め込まれた悪意あるJavaScriptが、ユーザーの操作なしに実行され、ホスト上の機密ファイルが露出する可能性があります。「SneakPeek」と名付けられたこの脆弱性は、Claudeが生成または変更したHTMLファイルを描画する、アプリの自動プレビューペインに影響していました。
Black Duckのサイバーセキュリティガバナンス責任者であるRonald Lewis氏は、「新たなテクノロジーが攻撃対象領域を塗り替えていることを示す典型例です。攻撃者はAIエコシステムを狙う傾向を強めており、モデル、エージェント、ツール、データソース、連携サービスの間に存在する暗黙の信頼関係を悪用しています」と指摘します。
Nomaが水曜日の公開に先立ちCSOに共有したブログ記事によると、攻撃者は公開リポジトリに悪意あるファイルを仕込み、開発者がClaude Codeにそのファイルの調査を依頼するのを待つだけで、この脆弱性を突くことができます。
アプリがファイルを描画すると、スクリプトはローカルファイルを読み取り、AWSの認証情報、GitHubのシークレット、SSH秘密鍵といった機密データをリモートサーバーへ持ち出せました。
この脆弱性にはCVSSスコア8.7(深刻度「高」)が付与されていますが、CVE IDはまだ発行されていません。Nomaによると、Anthropicは情報開示の過程でNoma Labsと協力し、問題を完全に修正したとのことです。
Nomaの上級AI脆弱性研究者であるEli Ainhorn氏はCSOの取材に対し、「AnthropicはGitHubセキュリティアドバイザリを準備中で、CVEも申請済みだと確認しています。まもなく公開される見込みです。CVSSスコアはAnthropicが付与した8.7(High、v4.0)です」と述べました。
Anthropicは、CSOからのコメント要請にすぐには応じませんでした。
256KBのしきい値がローカルファイルの漏えいを招いた
Nomaは、SneakPeekの原因をClaude Codeデスクトップのプレビュー機構にある3つの設計上の欠陥にたどり着きました。この機構は、ElectronベースのChromium描画パネルでHTMLコンテンツを表示します。
1つ目は、ファイルサイズのしきい値によってHTML文書の扱いが変わる点です。256KB未満のファイルは、スクリプトの実行を阻止する厳格なコンテンツセキュリティポリシー(CSP)を適用したBase64エンコードのdata: URLに変換されていました。一方、しきい値を超えるファイルはディスクに書き出され、「file://」URLとして直接読み込まれていたため、小さなファイルに適用されるCSPによる保護を回避していました。
2つ目の問題は、描画されたコンテンツに割り当てられるオリジンです。研究者らによると、大きなファイルをfile://で読み込むと、プレビューレンダラーは隔離された不透明なオリジンに閉じ込められず、Chromium上でローカルファイルシステムへアクセスできる状態になっていました。
3つ目の弱点は、リクエストフィルターが無効だったことです。アプリにはfile: //へのアクセスを遮断する仕組みがありますが、Nomaは、開発者がローカルのコードテストレポートを確認する場合を含め、静的ファイルの描画中にこのフィルターが機能していないことを突き止めました。
Lewis氏は、「セキュリティ境界をサイズのしきい値やクライアント側のフィルターに頼るのは、本質的に脆弱です。開発マシンには、SSH秘密鍵、AWSの認証情報、Kubernetesの設定、OAuthのセッショントークンなど、価値の高い運用上の機密情報が保管されています」と話します。
同氏は、開発者のローカルワークステーションが侵害されれば、企業のクラウドインフラへの直接的な侵入経路になりかねないと警告しています。
Nomaは、Anthropicが最初に施したパッチを回避できることも確認しました。Ainhorn氏は次のように説明します。「最初のパッチは、プレビューペインがメインページのコンテキストから直接ファイル読み取りリクエストを出すことを阻止していました。しかし、ファイルを読み取るコードを、ブラウザーがメインページとは別に実行するバックグラウンドスレッドであるWeb Workerに移すと、パッチが対象としていないコンテキストからリクエストが発生することが分かりました」
研究者らがこの回避方法を報告したことで、より根本的な設計の見直しが行われ、脆弱性は完全に修正されました。
AIモデルの外側にあるリスク
悪意あるスクリプトは、AIエージェント自身の操作としてではなく、プレビューペインの描画プロセス内で実行されました。そのため、モデル向けのセキュリティ対策がAIワークフロー全体を守っているという前提が成り立たなくなります。
Ainhorn氏は、「保護機能は確かに存在しましたが、すべての経路をカバーしていたわけではありませんでした。組織はAIコーディングツールを常に最新に保ち、開発者のマシンに長期間有効な認証情報を残さず、可能な限りスコープを絞った短命のトークンを使うべきです。それだけでも、この攻撃で奪われる情報は限定できたはずです」と語ります。
Sysdigの上級サイバーセキュリティストラテジストであるCrystal Morin氏によると、エージェントレベルのログでは、この実行を必ずしも捉えられません。ファイルの読み取りや外部へのネットワーク接続は、防御側が適切な監視を行うランタイム層で可視化されるといいます。同氏は「AIエージェントの起点はエンドポイントですが、その影響範囲はクラウドにまで及びます」と述べ、AIツールを使った日常的な作業が、ワークステーションの外側にまで深刻な影響を及ぼす形で認証情報を露出させかねないと警告しました。
Shwetaは2017年からエンタープライズ技術について執筆しており、直近ではCSOオンラインでサイバーセキュリティを担当しています。ランサムウェアからゼロトラストアーキテクチャまで、複雑なテーマを専門家にも一般の読者にも分かりやすく解説しています。アジアン・カレッジ・オブ・ジャーナリズムでジャーナリズムの大学院ディプロマを取得。サイバー脅威の解読に追われていない時は、小説を読んだり、映画を観たり、新しいレシピを試したりするのが趣味です。