
Angular團隊揭露一項跨站腳本XSS漏洞,問題源於Angular範本編譯器在處理特定SVG元素時,對安全情境的判斷出現落差,使框架內建的輸入消毒機制(Sanitization)在少數情境下可能被繞過。在符合特定條件時,攻擊者得以將惡意內容帶入頁面脈絡,進而在受害者瀏覽器工作階段中執行任意JavaScript程式碼。官方已針對19、20、21分支釋出修補版本,建議使用者升級至19.2.18、20.3.16、21.0.7或21.1.0-rc.0以降低風險。
該漏洞編號為CVE-2026-22610,NVD頁面指出,問題在於Angular內部的輸入消毒規則定義,未將SVG的script元素之href與xlink:href屬性辨識為資源URL情境,導致範本編譯器在安全檢查時,沒有套用資源URL應有的更嚴格限制,因而在特定條件下可能被繞過。
GitHub的安全公告將其評為高風險,並給出CVSS v4基準分數8.5,官方解釋,當應用程式在範本中使用屬性綁定,將可被使用者影響的資料指派給SVG的script元素之href或xlink:href時,編譯器可能把該值當作一般字串或低風險網址處理,而未套用資源連結應有的限制。攻擊者因此可能注入data:text/javascript這類URI,或導向外部惡意腳本,最終讓惡意程式碼在受害者瀏覽器端被解讀並執行。
在影響範圍方面,公告列出受影響套件包含@angular/compiler與@angular/core。已確認19、20、21三主版本在特定區間內受影響,分別於19.2.18、20.3.16、21.0.7與21.1.0-rc.0起完成修補。另就18版而言,GitHub安全公告將18.2.14及以前版本列為受影響範圍,且該版本未提供修補版本。
不過,這不代表所有採用Angular的網站都會立即暴露於同等風險中,GitHub公告列出攻擊成立的前提,受害應用需在範本中實際使用SVG的script元素,並對其href或xlink:href進行屬性綁定或插值,同時綁定值必須來自不可信來源,例如網址參數、使用者輸入、資料庫內容或未妥善處理的API回應。也就是說,當專案未採用相關SVG用法,或未把外部輸入帶入上述屬性,實際暴露面可能相對有限,但仍建議完成版本盤點並依官方版本更新。
GitHub公告同時建議,在尚未完成升級前,應避免對SVG的script元素使用動態綁定。要是業務需求必須動態帶入,則應在資料進入範本前採取嚴格白名單驗證,確保僅允許可信的URL來源,降低被惡意資料觸發的機率。
熱門新聞
2026-01-12
2026-01-12
2026-01-12
2026-01-12
2026-01-12