先月くらいにGitHubのザコいXSSを報告しました。大したXSSではないです。
●PoC
諸般の事情により公開しませんが、スクリーンショットでどういうXSSかピンとくるでしょう……
●影響範囲
XSSが起こるドメイン名がある種のサンドボックスになっているため、Cookie(セッションIDほか)が窃取されるなどの危険性はありません。しかしながら、任意のJavaScriptコードを実行することは可能です。
今回検出したXSSは、ログイン前のGETメソッドで起こることから、通常であれば高リスクと判断されますが、限定的な環境においてXSSの影響を受けること、上述のセッションIDが窃取される危険性が無いことを勘案し、低リスクと判断することが妥当でしょう。
●対策方法
対策方法はいくつかありますが、代表的なものを取り上げます。
該当箇所はファイルアップロード機能を悪用したものであり、ダウンロード時に次のヘッダを付与する。
X-Content-Type-Options: nosniff
もしくは、表示ではなくファイルのダウンロードをさせる。ダウンロードの場合は、保存するかしないかのダイアログが表示されるため、JavaScriptコードは実行されない。
●報奨金
HackerOneなどでGitHubの報奨金制度がありますが、GitHub Security TeamのSteve氏曰く「Our team will take a look at your report but I should point out that the following does not qualify for the bounty」とのことでしたー(やっぱり><✘