Stored XSS Vulnerability in RustFS Console Puts S3 Admin Credentials at Risk
2026/02/27 gbhackers — RustFS Console に発見された深刻なセキュリティ脆弱性により、Admin アカウントに乗っ取りリスクが生じている。この Stored Cross-Site Scripting (XSS) の脆弱性 CVE-2026-27822 (CVSS v3:10.0:Critical) は、Rust パッケージの 1.0.0-alpha.82 以下のバージョンに影響を及ぼすものだ。

この脆弱性の悪用に成功した攻撃者は、マネージメント・コンソールのコンテキスト内で任意の JavaScript を実行し、システムの完全侵害に至る可能性がある。
この脆弱性は 2 つの主要因に起因する。それらは、ファイル・プレビュー時のレスポンス・コンテンツ・タイプの不適切な検証、および、S3 object 配信とマネージメント・コンソール間のオリジン分離の欠如である。
RustFS は、マネージメント・コンソールと S3 API を、同一オリジン (IP およびポート) 上でホストするのが通常である。しかし、このコンフィグにより Same-Origin の脆弱性が発生する。
| Technical Metric | Vulnerability Details |
|---|---|
| CVE ID | CVE-2026-27822 |
| GitHub Advisory | GHSA-v9fg-3cr2-277j |
| Vulnerability Type | Stored Cross-Site Scripting (XSS) |
| Patched Version | 1.0.0-alpha.83 |
| Severity Score | Critical (/ 10) |
ファイルがプレビューされる際に、アプリケーションは <iframe> を使用して拡張子に基づきコンテンツを描画する。しかし、実際に配信されるコンテンツ・タイプに対する厳格な検証は行われていない。
攻撃メカニズム
RustFS Console は、きわめて機密性の高い S3 クレデンシャルをブラウザの localStorage に安全でない形で保存する。そこに含まれるものには、AccessKey/SecretKey/SessionToken などがある。
プレビューに使用される <iframe> は、コンソールと同一のオリジン上でホストされる。そのため、当該フレーム内で実行されるスクリプトは親ウィンドウのデータに無制限にアクセスできてしまう。
RustFS によると、攻撃者は悪意のファイルをアップロードすることで、この欠陥を悪用できる。たとえば、JavaScript を含む HTML ファイルを .pdf 拡張子で命名するなどの、悪意の手法が想定される。
重要なことは、攻撃者がファイルの Content-Type メタデータを “text/html” に設定できる点にある。それにより、Admin が無害に見える PDF ファイルをプレビューすると、ブラウザはコンテンツを HTML と解釈する。その結果、埋め込まれた JavaScript が実行されてしまう。

この攻撃の容易さを、PoC エクスプロイトが示している。
攻撃者は <script>alert ( ‘XSS Success!\nLocalStorage Data: ‘ + JSON.stringify ( window.parent.localStorage ) );</script> のようなペイロードを作成する。このファイルを標的のバケットにアップロードし、ファイル名を xss.pdf とし、属性を –attr “Content-Type=text/html” と設定する。
Admin が RustFS Console にログインし、xss.pdf の Preview をクリックすると JavaScript が実行される。その結果として、Admin クレデンシャルを含む localStorage データが即座に窃取される。
影響と緩和策
この Stored XSS 脆弱性の影響は深刻である。被害者の S3 クレデンシャルを窃取することで、攻撃者は完全な Account Takeover ( ATO ) を達成する。
その結果として、データ削除やバックドアの作成などに加えて、S3 API 経由でのファイル・システム全体のダウンロードといった管理操作も可能になる。
この重大な脅威を緩和するために、RustFS ユーザーに対して推奨されるのは、修正版 1.0.0-alpha.83 への速やかなアップデートである。さらに、長期的な対策として以下が推奨される。
Origin 分離:コンソール用ドメインとは異なる、専用ドメインをデータ配信用に実装し、Same-Origin Policy (SOP) を活用する。
Security header:バックエンドで厳格なセキュリティ・ハードニングを強制する。Content-Security-Policy (CSP) によりスクリプト実行を制限し、X-Content-Type-Options: nosniff により宣言されたタイプと矛盾するコンテンツ実行を防止する。
Admin にとって必要なことは、1.0.0-alpha.83 を介した速やかなパッチ適用による、RustFS デプロイメント環境の保護である。
RustFS Console において、管理権限を完全に奪取される恐れのある、きわめて深刻な脆弱性 CVE-2026-27822 (CVSS:10.0) が修正されました。この脆弱性は、管理画面とデータ配信を同じドメイン (同一オリジン) で運用しているという、設計上の不備を突く蓄積型 XSS です。Content-Type を HTML に偽装した悪意のファイルがアップロードされ、そのファイルを管理者がプレビューした瞬間に、ブラウザ内で不正な JavaScript が実行されます。
プレビュー枠と管理画面が同一オリジンであるため、実行されたスクリプトはブラウザの localStorage に保存されている S3 アクセスキーやセッション・トークンなどを制限なく読み取ることが可能です。それにより、攻撃者は管理者の認証情報を盗み出し、システム全体のデータ削除やバックドアの設置など、完全なアカウント乗っ取りを達成します。ご利用のチームは、ご注意ください。
You must be logged in to post a comment.