Angular の XSS 脆弱性 CVE-2026-22610 が FIX:サニタイズ・スキーマのバグと悪意のペイロード挿入

New Angular Vulnerability Enables an Attacker to Execute Malicious Payload

2026/01/13 CyberSecurityNews — Angular のテンプレート・コンパイラに、深刻なクロス・サイト・スクリプティング (XSS) の脆弱性 CVE-2026-22610 が発見された。この脆弱性の影響が及ぶ範囲は、@angular/compiler および @angular/core パッケージの複数のバージョンとなる。この脆弱性を悪用する攻撃者は、Angular に組み込まれたセキュリティ保護を回避しながら、標的とするブラウザ内で任意の JavaScript コードを実行できる。

脆弱性の解説

この脆弱性は、Angular の内部サニタイズ・スキーマに存在する。SVG の “<script>” 要素における “href” 属性および “xlink:href” 属性を、厳格な検証を必要とするリソース URL として正しく認識できない点に起因する。

この脆弱性を悪用する攻撃者は、テンプレート・バインディングを介して悪意のペイロードを挿入し、ユーザー・セッション内で不正なコードを実行できるようになる。

FieldDetails
CVE IDCVE-2026-22610
Vulnerability TypeCross-Site Scripting (XSS)
CWECWE-79: Improper Neutralization of Input During Web Page Generation
CVSS v4 Score8.5 (High)
CVSS VectorCVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N

開発者が Angular のプロパティ・バインディング構文 (例:”[attr.href]=”userInput””) を使用した場合に、これらの SVG スクリプト属性を危険なリソース・リンクではなく通常の文字列として、コンパイラは扱ってしまう。

この誤分類により、”data:text/javascript” URI などの、外部の悪意のスクリプトへのリンクなどが、セキュリティ・チェックを回避できるようになる。この脆弱性が悪用されると、深刻な結果を招く可能性がある。

その結果として、セッション Cookie/localStorage データ/認証トークンを窃取する攻撃者に、ユーザー・アカウントが乗っ取られる可能性が生じる。

さらに、アプリケーション内に表示される機密情報の窃取や、認証済みユーザーを装った不正操作の実行も可能となる。

この脆弱性の CVSS v4 ベース・スコアは 8.5 であり、高い深刻度に分類される。悪用に必要な攻撃の複雑さは低く、要求される権限レベルも比較的低い。

影響を受けるバージョンと修正済みバージョン
Angular PackageAffected VersionsFixed / Safe Versions
@angular/compiler, @angular/core≥ 21.1.0-next.0 and < 21.1.0-rc.021.1.0-rc.0 or later
@angular/compiler, @angular/core≥ 21.0.0-next.0 and < 21.0.721.0.7 or later
@angular/compiler, @angular/core≥ 20.0.0-next.0 and < 20.3.1620.3.16 or later
@angular/compiler, @angular/core≥ 19.0.0-next.0 and < 19.2.1819.2.18 or later
@angular/compiler, @angular/core≤ 18.2.14No patch available — upgrade required

この脆弱性の悪用には、特定の条件が必要となる。対象アプリケーションが、”href” または “xlink:href” 属性に対する動的プロパティ/属性バインディングを持つ SVG の “<script>” 要素を使用しており、かつ、バインドされるデータが信頼できないソースから取得されている場合である。

GitHub のアドバイザリによると、開発者にとって必要なことは、Angular の修正済みバージョンへと速やかに更新することだ。

また、パッチ適用までの暫定対策として、SVG スクリプト要素での動的バインディングの使用を避けることが推奨される。さらに、動的 URL 値がテンプレートに到達する前段階で、厳格なサーバ側での入力検証を実装する必要がある。