この変更が意味すること
Svelte v5.55.7 は セキュリティ修正を含むパッチリリース です。最も重要な変更は hydratable 経由でユーザーコンテンツからスクリプトが実行される XSS 脆弱性の修正です。
SSR(Server-Side Rendering)やハイドレーションを利用している Svelte プロジェクトでは、ユーザー入力がサーバーサイドでレンダリングされる際に悪意あるスクリプトが実行される可能性がありました。本リリースではこの問題に加え、SSR 中の空属性名禁止、正規表現のハードニング、ランタイムプロパティの Symbol への移行が行われ、セキュリティ品質が全体的に強化されています。
前バージョン v5.55.5 ではリアクティビティエンジンの derived 処理やアニメーションイベントの修正が行われており、5.55 系はバグ修正とセキュリティ強化が集中的に進んでいます。
主な変更点
hydratable からの XSS 脆弱性修正
hydratable モードでサーバーサイドレンダリングされたコンテンツにユーザー入力が含まれる場合、クロスサイトスクリプティング(XSS)が可能となる脆弱性が修正されました。
ハイドレーション時にクライアント側で DOM を再利用する過程で、サニタイズが不十分だったユーザーコンテンツからスクリプトが実行される可能性がありました。SSR を利用しているプロジェクトでは早急なアップデートを推奨します。
コミット: a16ebc6
SSR 中の空属性名禁止
SSR 処理中に空の属性名が許可されていた問題が修正されました。空属性名はインジェクションベクターとして悪用される可能性があるため、明示的に禁止されました。
コミット: 547853e
正規表現のハードニング
内部で使用される正規表現のセキュリティが強化されました。ReDoS(Regular Expression Denial of Service)等の攻撃ベクターへの耐性が向上しています。
コミット: d2375e2
ランタイムプロパティの Symbol 移行
Svelte ランタイムのプロパティが文字列キーから Symbol に移行されました。プロパティの衝突リスクが減少し、内部実装の堅牢性が向上しています。
コミット: e1cbbd9
devalue パッケージのバンプ
内部依存の devalue パッケージが更新されました。
PR: #18219
EOL / サポート状況
Svelte は endoflife.date での正式なサイクル管理対象外ですが、npm のタグ状況は以下の通りです。
| バージョン系列 | 最新 | ステータス |
|---|---|---|
| 5.x | 5.55.7 | 最新(active) |
Svelte 5 が現在のアクティブ系列です。next タグは 5.0.0-next.272 のまま更新されていません。
開発者への影響
- SSR / ハイドレーション利用者(最重要): XSS 脆弱性の修正が含まれているため、ユーザー入力をレンダリングする環境では早急なアップデートを推奨します
- SSR でユーザー生成コンテンツを扱うアプリ: 空属性名の禁止により、属性インジェクションのリスクが排除されます
- カスタムランタイムプロパティに依存するライブラリ作者: Symbol への移行により、文字列キーで内部プロパティにアクセスしているコードは影響を受ける可能性があります
アップデート方法
# npm
npm install svelte@5.55.7
# pnpm
pnpm update svelte@5.55.7
# yarn
yarn upgrade svelte@5.55.7
データソース: GitHub Releases API, npm Registry AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
