ビルドログを利用した Sourcehut アカウント乗っ取り(ansi2html の XSS)
## Japanese Translation:
SourceHut のビルドログ(`builds.sr.ht`)は、サードパーティ製ライブラリ `ansi2html` が悪意のある OSC 8 ハイパーリンクを安全に解析しないことが原因で、約 4.5 年にわたり深刻なクロスサイトスクリプティング (XSS) 脆弱性に曝されていた。この脆弱性は `ansi2html` に 2021-09-03 に導入され、フラッグシップである SourceHut インスタンスには 2022-02-08 に展開された。影響を受けるのは `ansi2html` のバージョン >=1.7.0 から <1.9.4 および SourceHut のバージョン 0.40.0 から 0.105.1 までのインスタンスである。
攻撃者は CI やメーリングリストなどを通じてビルドジョブを構築し、`\33]8;;https://example.com/"/autofocus/tabindex="1"/onfocus="alert`xss`\7...` のような特定の OSC 8 リンク文字列を含むペイロードを作成できる。このペイロードは未パッチのログビューアーで表示されると JavaScript を実行し、攻撃者が CSRF トークンを窃取したり、システム管理者として悪意のあるビルドジョブを提出したりする可能性がある。成功したエクスプロイトによって `sr.ht` のデプロイキーが暴露され、セッションハイジャッキングやリポジトリの侵害に至る。
公的な発表前に内部での開示が行われた:2026-08-01 に暫定パッチが送信され、メンテナーである Drew DeVault による公認は 2026-08-04 に行われた。`ansi2html` の根本的な解析ロジックを修正する PR がマージされ、バージョン 1.9.4 が 2026-09-02 にリリースされた。Arch Linux はそのパッケージを固定されたバージョンに更新したのは 2026-09-05 で、`builds.sr.ht` および SourceHut の配布版にもパッチが適用された。提案された CVSS スコアリング(AV:N, AC:L, PR:N, UI:P, VC:H, VI:H)は、デプロイキーの暴露と管理者レベルのジョブ提出機能による高い重大性を反映している。
再発を防ぐためには、専門家は厳格な Content-Security-Policy ヘッダーの実装、`unsafe-inline` スクリプトの除去、依存ライブラリの定期的な更新、`ansi2html` をステートフルなトランシューダを用いた再アーキテクチャによる誤った解析ロジックの排除を推奨している。この事例は、単一のライブラリ上の欠陥が整个エコシステムに影響を与える可能性があることを示しており、能動的なサプライチェーン衛生管理および防御的コーディング慣行の重要性を強調している。研究者是 CTF の背景を持ち、Antmicro で従事し、現在博士学位を取得中で、本研究成果から金銭的利益を得ていない者であり、責任ある開示手順を全過程で遵守した。