Skip to content

inbox / GitHub issue body の URL スキーム検証と markdown 崩れ #48

Description

@kosako

症状(重大)

  1. inbox の stored XSS: page.urlescapeHtml 後に <a href> へ入れているが、javascript: スキームはエスケープでは防げない。page.url = \"javascript:...\" の payload を受信すると、inbox でリンククリック時に receiver オリジンで実行される
  2. GitHub issue body の markdown 注入: | Page | [label](${page.url}) | の URL 部が生埋めで、) 等を含む URL で markdown が崩れ任意の markdown を注入できる。コメント・element text の複数行 blockquote も \``` で崩せる

対応案

  • href / markdown link に使う URL は http(s): のみ許可(不一致はプレーンテキスト表示)
  • markdown link の URL は < > で囲む([label](<url>))か encode する
  • テスト: javascript: URL の payload → inbox HTML に href として出ないこと

対象: server/receive.jsrenderInbox / gitHubIssueBody

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions