すべての公開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 のコメント