概要
Astro SSR アプリにおいて、client:* ディレクティブを使用するコンポーネントのスロット名が、data-astro-template 属性に HTML エスケープなしで挿入される脆弱性が発見されました。
攻撃者がスロット名として使用される値を操作できる場合(URL パラメータやリクエストデータからスロット名が動的に生成されるケース等)、属性コンテキストを脱出して任意の HTML や JavaScript を注入できます。これは SSR 実行時に反映されるリフレクテッド XSS として悪用できます。
本脆弱性は GHSA-wrwg-2hg8-v723 と類似していますが、別の注入ポイント(component.ts:371 付近)を悪用します。
CVSSベクトル
| 項目 | 値 |
|---|---|
| 攻撃経路(AV) | Network |
| 攻撃複雑度(AC) | Low |
| 必要権限(PR) | None |
| ユーザー関与(UI) | Required |
| スコープ(S) | Unchanged |
| 機密性(C) | Low |
| 完全性(I) | High |
| 可用性(A) | None |
| CVSS スコア | 7.1 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| astro | withastro | v6.3.3 未満 |
影響条件:
- SSR 構成で
client:*ディレクティブを使用しているコンポーネントが存在する - スロット名が外部入力(リクエストパラメータ等)から動的に生成されている
修正バージョンと回避策
修正バージョン: Astro v6.3.3 以降
推奨対応:
- Astro を v6.3.3 以降へアップデートする(v6.4.6 も別の脆弱性を含むため、最新版推奨)
client:*ディレクティブのスロット名に外部入力を使用している箇所を確認・修正する
関連リンク
データソース: OSV (Google), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
