すべての公開 Notion ページで、すべての編集者のメールアドレスが露出している
(twitter.com/weezerOSINT)- 公開 Notion ページでは編集者 UUID が認証なしで露出し、1回の POST リクエストで 名前・メールアドレス・プロフィール写真 を取得できる
- 公開された社内 Wiki やドキュメントでは、そのページを編集した 従業員のメールアドレス がそのまま露出する可能性があり、Notion Community ページでも 13件のユーザー ID のうち 12件のメール を確認
- テストでは Notion 社員、
svc-notion-prod@makenotion.comのような service account、外部契約者が含まれ、別途 Cookie・トークン・認証手順 なしで照会可能 getLoginOptionsも認証なしで呼び出し可能で、各アカウントの パスワードログイン の可否と SSO 利用 の有無を判別できる- この問題は 2022年の報告後も修正されておらず、公開ページを広く使う組織では PII 露出リスク が大きい状態
再現方法と露出する情報
- 公開ページの権限情報の中で Notion API が 編集者 UUID を返しており、この過程に 認証は不要
- Notion Community ページを対象にブロック権限から 13件のユーザー ID を確認し、これを
/api/v3/syncRecordValuesMainに渡して 12件のメールアドレス を取得- 返却対象には Notion 社員、production service account である
svc-notion-prod@makenotion.com、そして 外部契約者 を含む - すべて 1つのページ だけで確認された結果
- 返却対象には Notion 社員、production service account である
- 別途 Cookie、トークン、認証手順 なしでリクエスト可能
影響と追加リスク
- Notion ページは 社内 Wiki、採用掲示板、公開ドキュメント、オンボーディングガイド など多様な形で広く使われている
site: notion.site検索で 数千件 の公開ページを見つけられる- こうした公開ページごとに、認証なしの API 呼び出し1回で 編集者のメールアドレスが露出する可能性 がある
- 従業員 500人のエンタープライズワークスペース が公開ページを共有している場合、1回のリクエスト で 500件の会社メールアドレスを取得できる
- rate limiting なし、1回で 50人ずつバッチ処理 が可能
getLoginOptionsもやはり 認証なしで呼び出し可能- これを組み合わせると、各アカウントが パスワードログイン を使うのか SSO を使うのかを判別できる
- この組み合わせは credential stuffing の無料ターゲットリストにつながり得る
- 最初の報告は 2022年7月28日 に HackerOne に提出
- その後も約 4年近く 修正されていない
- 同じ問題を別途再発見して報告したが 重複処理 となった
- 再テストの結果でも 同じエンドポイント、認証なし状態、メール返却の継続 を確認
- HackerOne ではこの報告を informative に分類し、原文ベースで CVE の付与なし、バグバウンティなし だった
- 顧客 PII の露出 状態と規定
- 公開 Notion ページを利用しているチームは 共有設定の点検が必要
3件のコメント
Notion AI以降、もう……何のアプリなのかも分からなくなってしまったけど、
こんなこともあったんだな
NotionからObsidianに乗り換えてからは、使うことがなくなったけど…
Hacker News のコメント