概要
Astro の SSR(Server-Side Rendering)アプリにおいて、プリレンダーされたエラーページ(/404 や /500)の取得処理に Server-Side Request Forgery(SSRF)の脆弱性が存在します。
エラーが発生した際、Astro は SSR エラーページを取得するための HTTP フェッチを行いますが、このとき使用する URL のオリジンが受信リクエストの Host ヘッダから生成されます。Host ヘッダが allowedDomains に対して検証されていないため、攻撃者は Host ヘッダに任意のホストを設定して、サーバーに内部リソースや外部の任意ホストへのリクエストを発行させることができます。
CVSSベクトル
| 項目 | 値 |
|---|---|
| 攻撃経路(AV) | Network |
| 攻撃複雑度(AC) | High |
| 必要権限(PR) | None |
| ユーザー関与(UI) | None |
| スコープ(S) | Changed |
| 機密性(C) | High |
| 完全性(I) | Low |
| 可用性(A) | None |
| CVSS スコア | 7.5 |
影響を受けるソフトウェア
| 製品 | ベンダー | 影響バージョン |
|---|---|---|
| astro | withastro | v6.4.6 未満 |
影響条件:
- SSR デプロイメント(output: 'server' または hybrid)
/404や/500ページがexport const prerender = trueでプリレンダーされているallowedDomainsが適切に設定されていない
修正バージョンと回避策
修正バージョン: Astro v6.4.6 以降
推奨対応:
- Astro を v6.4.6 以降へアップデートする
- SSR アプリで
allowedDomainsを明示的に設定する - エラーページをプリレンダーしている構成かどうかを確認する
関連リンク
データソース: OSV (Google), GitHub Advisory Database
AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
