Edited at

Bitbucketにあった2つのStored XSS

More than 1 year has passed since last update.

本記事は脆弱性"&'<<>\ Advent Calendar 2016の15日目の記事です。

Bitbucketに2つXSSを報告したお話です。


XSS on branch name (upon delete)

alert-1.png

alert-2.png

画像が全てです。ブランチを削除した時に表示されるメッセージがエスケープされていなかったためXSSが可能でした。ワンタイムですがStored XSSのため、任意のブラウザで発現可能でした。言うまでもなくユーザーインタラクションが必要なため、弱めのXSSです。


XSS with issue title and commit message

Issueを git commit -m "fix #1" としてコミットメッセージからresolveした場合、Web UI上ではコミットメッセージ内のIssue番号がIssueのタイトルで置換されて表示される仕様でした。その際、Issueタイトルがエスケープされずに表示されていたため、



  1. "><script>alert(document.domain)</script> というタイトルのissueを立てる。


  2. git commit -m "fix #1" && git push でこのissueをresolveする。

という手順でStored XSSが作れました。

alert.png

s_tag.png

これはログイン状態に関わらずIssueのページに誘導するだけで発現させられた他、Bitbucketトップページの"Recent Activity"の中にも表示されており、Bitbucket上で自分をフォローしている全てのユーザーのトップページにXSSを仕込めるようになっていたため、強力なXSSでした。


結果

AtlassianのSecurity Hall of Fameに名前を載せてもらった他、Tシャツを貰いました。

おわり