SourceHutのアカウント乗っ取りを可能にしたansi2htmlのXSS
Sourcehut account takeover via build logs (XSS in ansi2html)
SourceHutのビルドログにXSS脆弱性が見つかり、攻撃者が任意のJavaScriptを実行できる状態だった。ansi2htmlのOSC 8ハイパーリンク処理の不備を突き、悪意ある文字列をログに出力させるだけで、閲覧者のブラウザ上でペイロードが動作。管理者が閲覧すればアカウント乗っ取りやデプロイキーの窃取も可能だった。修正版はansi2html 1.9.4とbuilds.sr.ht 0.105.1。
もし私が黒帽子だったら、DrewがJSを有効にした影響を受けるビルドログを訪問するだけで十分で、SourceHutのデプロイキーにアクセスできるビルドジョブを彼の名前で送信できただろう。
HNでの議論
28- kwhitlock
ビルドログは本当に厄介な攻撃対象だ。任意のビルド出力をサニタイズするのは、有用なフォーマットを壊さずにやるのはほぼ不可能だ。常に信頼できない入力だと想定すべきだ。
- Joker_vD
なんてこった、またOSC 8かよ。ターミナルウィンドウからURIをコピペするのが2003年みたいだって? まあ、恣意的に不正確な説明じゃなくて、実際のURLを見なきゃいけないなんて、まるで1993年だな。俺がansi2htmlの亜種を書いたときは、C0とC1は全部、そしてAPC/DCS/OSC/PMシーケンスの可能性があるものも全部、徹底的に除去したよ。
一方で、manページの異なる部分間の内部リンクは今でも存在しない(GNU Infoを使う手もあるが、真面目な話、HTMLファイルのフォルダにlynxを使う方がマシだ)。
- bstsb
何年もまともにrickrollされてなかったのに、まさかこれが来るとは思わなかった!