ハクソク

世界を動かす技術を、日本語で。

Notion AI: 未修正のデータ流出

概要

  • Notion AIにおける間接的なプロンプトインジェクション脆弱性の発見
  • ユーザー承認前にAI編集内容が保存される設計上の問題
  • データ流出の仕組みと攻撃手法の詳細解説
  • 組織・Notion向けの推奨対策案
  • 脆弱性開示と対応の時系列まとめ

Notion AIにおける間接プロンプトインジェクション脆弱性

  • Notion AIは自然言語でドキュメント編集が可能なAI機能
  • AIによる編集内容がユーザーの承認前に保存される設計
  • この仕様により、プロンプトインジェクションによるデータ流出リスクが発生
  • 攻撃者は悪意あるデータ(例:改ざん済み履歴書PDF)をアップロード
  • 履歴書内に1ポイント白文字+白画像でプロンプトインジェクションを隠蔽
  • LLMは隠された命令を解釈し、ユーザーに見えない形で悪意ある操作を実行

データ流出の仕組み

  • ユーザーがNotion AIに履歴書内容を元に採用トラッカー更新を依頼
  • プロンプトインジェクションにより、攻撃者管理ドメインへのURLを自動生成
    • ドキュメント内容全体をURLの一部として付与
    • そのURLを画像ソースとしてトラッカーに挿入
  • ユーザー承認前に編集が保存され、ブラウザが攻撃者サーバーへリクエスト
  • 攻撃者はサーバーログから流出した機密情報を取得
    • 給与希望、候補者評価、社内役職、ダイバーシティ目標など

追加の攻撃対象範囲

  • Notion Mail AIのドラフト機能も同様の脆弱性
    • Markdown画像の自動描画によりデータ流出
    • 明示的に指定したNotion内リソースに限定されるがリスクは残存

組織向け推奨対策

  • 接続データソースの審査制度導入
    • 高機密・高リスクデータへのコネクタ利用制限(Settings > Notion AI > Connectors)
  • AIウェブ検索機能の制限
    • 管理者設定で外部ウェブ検索を無効化(Settings > Notion AI > AI Web Search > Enable web search for workspace > Off)
  • 個人設定でのリスク低減
    • 個人情報のパーソナライズ設定時に機密情報を含めない
    • ウェブリクエストに都度確認を要求(Settings > Notion AI > AI Web Search > Require confirmation for web requests > On)
  • ※これらはリスク軽減に有効だが、根本的な脆弱性の解消には至らない

Notion向け推奨対策

  • 外部サイトのMarkdown画像自動描画禁止
    • 明示的なユーザー承認がない限り、AIによるページ生成・更新・メールドラフトで外部画像描画を禁止
  • 強力なContent Security Policy(CSP)実装
    • 未承認ドメインへのリクエストを防止
  • CDNのオープンリダイレクト対策
    • CSPバイパス防止のため、画像取得用CDNの安全性確保

責任ある脆弱性開示の時系列

  • 2025年12月24日 HackerOne経由で初回報告
  • 2025年12月24日 報告受領・書式修正依頼
  • 2025年12月24日 修正版レポート再提出
  • 2025年12月29日 「Not Applicable」としてクローズ
  • 2026年1月7日 公開開示

まとめ

  • Notion AIの設計上の問題により、ユーザー承認前に機密情報が流出するリスク
  • プロンプトインジェクションを用いた巧妙な攻撃手法
  • 組織・サービス提供者双方での多層的な対策が必要

Hackerたちの意見

NotionがAIのセキュリティをもっと真剣に考えてないのは残念だね。9月の3.0エージェントリリースで他のデータ流出の脆弱性について批判を受けたのに。
個人的には、問題はブラウザがユーザーの明示的な許可なしにURLにアクセスすることだと思う。デスクトップソフトウェアを復活させてほしいな。
まあ、プラットフォームに関係なくセキュリティを考えることに戻った方がいいんじゃないかな。ウェブはなくならないし、プラットフォームのセキュリティをもっと大事にしてほしいよね。
LLMのセキュリティは構造的に全然違うんだよね。攻撃の範囲が「人間が書いた言語の全て」だから、実質的に無限なんだ。これを理解するのは最近になってやっとみんなが気づき始めたところだと思う。一般的に、LLMの出力は(どこであれ)信頼できないものとして扱って、クラシックなサイバーセキュリティのガードレール(サンドボックス、データの権限管理、ログ記録)を確保するのが、今の最先端の緩和策だよね。これからどう進化していくのか、楽しみだな。
まあ、シンプルだよ。公開したくない情報には、llmにアクセスさせないこと。llmをユーザーみたいに扱う感じだね。
LLMが安全になるとは思えないな。プロンプトインジェクションは、LLMの基本的な仕組みの一部だから、なくならないと思う。トークンが入って、トークンが出る。
Dijkstra, 「自然言語プログラミングの愚かさについて」: [...]もし最初から私たちの母国語だけが情報処理機器への入力と出力の手段だったら、どうなっていたか想像してみるのも面白いかも。僕の考えでは、歴史はある意味で繰り返されて、コンピュータサイエンスは、そこから十分に定義された形式的なシステムにブートストラップするための黒魔術になっていたと思う。インターフェースを使いやすいくらい狭くするためには、世界中の知性が必要だっただろうし、[...]コンピュータに正確にやってほしいことを伝える方法があればよかったのに。
マルチステップの推論やツールの使用が広がると、それらは脅威モデルの中で別のアクターとして機能するようになるよね。モデルのアラインメントが文脈によってどれだけ影響を受けるか、全然わからないし(アンソロピックのサブリミナル学習に関する論文は、ちょっと目から鱗だった)、それを守るための確実な方法もないんだよね。1 - https://alignment.anthropic.com/2025/subliminal-learning/
ちょっと前に、AIに推薦してもらうためには履歴書に白い隠しテキストを使う必要があるって学んだ人がいるよね。それに、競争相手の履歴書を買って比較できるサービスもあるし、今は面接に呼ばれるための競争が激化してる感じ。
企業やベンダーがどのLLMを使っているかをドキュメント化しようとする人がいるかもしれないね。モデルのバイアスを利用するために。
> 以前、人々は履歴書に「白い隠しテキスト」を使ってAIに推薦させる必要があることを学んだ。... PDFの履歴書内で「白い隠しテキスト」を使うのは注意が必要だよ。ATSが隠しテキストを他のテキストと同じにするために必要なことは、popplerプロジェクトの`pdftotext`で前処理することだから。高度なATSは、他の文書形式でも詐欺検出の役割で`pdftotext`を使うかもしれないしね。
リンクが問題になる可能性があるって分かってるのに、適当にコーディングするのはダメだよね。それに、指摘してくれる人を無視するのはもっとひどい。
Notionを使わない理由がまた一つ増えた。いつになったら、全てにSaaSを使うのをやめる覚醒が来るんだろう。悲しいことに、これはベイエリアみたいなテクノロジーに詳しい人たちの行動なんだよね。次の波は、昔のように一回の購入モデルのネイティブアプリになると思う。AIが開発者、特にインディー開発者がそういう製品を作るのを助けるだろうね。
> 次の波はネイティブアプリになると思うけど、詳しく教えて?
なんて偶然だろう。今日、NotionからObsidianに移行したばかりなんだ。タイミングが完璧だったかも(ちょっと遅すぎたかも?)
移行プロセスはどうだった?僕はObsidianをリアルタイムでコラボできるプラグイン(relay.md)に取り組んでるから、移行がスムーズなら、Obsidianが小規模チームにとってNotionの代わりになるのがどれくらい近いか気になるな。
これまた@simonwの致命的トライフェクタだね。プライベートデータへのアクセスと信頼できない入力は、企業エージェントの目的とも言えるから、外部とのコミュニケーションは安全じゃないよね。Markdownの画像は、みんなが忘れがちなものだし。
マークダウン画像が信頼できないベクターっていうのはいい指摘だね。致命的なトリフェクタは確実に防げるから、業界全体でもっと取り組むべきだと思う。
> 私たちはこの脆弱性をHackerOneを通じてNotionに責任を持って開示しました。残念ながら、彼らは「この発見は`該当なし`として閉じます」と言いました。
Notionを使うのは大好きだけど、セキュリティ問題に対処する際の彼らの実績はひどいよね。
自分が管理していない機械から出るデータ、特にNotionみたいなサービスに送るデータは、もうすでに「流出」してるようなもんだよ。重要なデータを流出させたくないなら、明確な契約がない限り、消費者向けのサービスは信用しない方がいい。彼らはデータを軽く扱うから、リスクがほとんどないんだよね。