GitHubの脆弱性情報データベースに、AstroのXSSとCSS注入に関する2件の勧告が掲載されています。修正版はそれぞれastro@7.3.2とastro@7.3.3で、7.3.2への更新だけではCSS注入の問題は解消しません。掲載日は、提供された資料では確認できません。
XSSは動的な文字列の渡し方が条件
CVE-2026-114128は、JSX・MDXの描画処理にあるXSSの脆弱性です。XSSは、利用者のブラウザで不正なスクリプトが実行される問題を指します。
対象は、astro:jsx経由で描画するscript・style要素に渡す動的な文字列です。動的な文字列と、コンパイラが生成した固定文字列を区別せず、安全なHTMLとして扱っていました。
悪用には、攻撃者が制御する値を、これらの要素の子として直接渡す実装が必要です。勧告によると、閉じタグを含む値によって任意のHTMLやJavaScriptを注入できます。入力をその場で表示する反射型と、保存した入力を後から表示する格納型のXSSにつながる恐れがあります。
その結果、被害者のブラウザで、対象アプリと同じオリジンの下で任意のJavaScriptが動く可能性があります。修正版のastro@7.3.2では、動的な文字列をエスケープする処理に変更しました。なお、このXSSの影響を受ける版の範囲は、提供された資料には書かれていません。
CSS注入は7.3.2も対象、本番環境でも再現
CVE-2026-114127は、画面遷移に使うView TransitionのCSS生成処理の問題です。対象はastroの7.1.0以上7.3.2以下で、修正版はastro@7.3.3です。
信頼できない値をアニメーション設定へ直接渡すと、CSSの区切り文字によって、本来の宣言やルールの外に値が出ることがあります。攻撃者は、サーバー側で描画するページへ任意のCSSを追加できます。実証コードは開発サーバーだけでなく、本番用のSSRビルドでも再現するとされています。
この問題による注入はstyle要素内にとどまり、HTMLやJavaScriptは注入できません。ただし、内容を隠したり、操作部品を移動したりする恐れがあります。ページの構造や、読み込み・実行を制限するCSPの設定次第では、DOM属性内のデータが漏れる可能性もあります。この問題だけでCookieやサーバー側限定の値が漏れるわけではありません。
日本での提供は発表には書かれていません。勧告では、利用版と値の渡し方が対象条件として示されています。
影響する会社・しない会社
- 影響する: Astroで、攻撃者が制御できる値をastro:jsx経由のscript・style要素の子へ直接渡している会社です。XSSの確認対象になります。
- 影響する: astroの7.1.0以上7.3.2以下を使い、信頼できない値をView Transitionのアニメーション設定へ直接渡している会社です。CSS注入の確認が必要です。
- 影響しない: View Transitionの設定に固定値や信頼できる値だけを使うアプリは、勧告によるとCSS注入の問題の影響を受けません。ただし、これはXSSも対象外という意味ではありません。
判断の軸は「Astroを使っているか」だけではありません。利用版と、外部からの値がどこへ渡るかを、2件に分けて確認する必要があります。