Quasar Framework: App Vite の SSR および SSG において、nonce 属性が安全に制限されていない
いくつかの @quasar/app-vite の SSR および SSG レンダラーパスにおいて、`ssrContext.nonce` が直接、引用符で囲まれた HTML 属性に組み込まれています。信頼できないデータを使用して nonce を生成または上書きするアプリケーションでは、引用符が nonce 属性を終了させ、生成された HTML に追加の属性やマークアップを挿入する可能性があります。
暗号的に生成された base64 または base64url の nonce は、HTML 属性の区切り文字を含まないため、直接的には影響を受けません。脆弱性を悪用するには、アプリケーションが攻撃者によって制御された、またはその他の安全でないデータを `ssrContext.nonce` に配置する必要があります。
この修正により、開発環境の SSR/SSG、本番環境の SSR、本番環境の SSG、クリティカル CSS、ストアの状態を管理するスクリプト、および Vue Devtools における nonce の処理が集中化されます。この修正では、nonce の値を空でない base64/base64url の CSP nonce として検証し、レンダリング前に属性の値を HTML エンコードします。
影響を受けるパッケージ:
- npm (JavaScript) @quasar/app-vite: 影響を受けるバージョンは 3.2.0 以下、3.3.0 で修正済み。