{"id":"CVE-2026-32635","aliases":["CLSA-2026-1775521847","CLSA-2026-1775521853","CLSA-2026-1782954037","CLSA-2026-1782954038","CLSA-2026-1783126874","CLSA-2026-1792161115","CLSA-2026-1792161116","CLSA-2026-1792163504","CLSA-2026-1792163505","CLSA-2026-1792208088","CLSA-2026-1792208571","CLSA-2026-1792250225","CLSA-2026-1792250477","CLSA-2026-1792250594","CLSA-2026-1792250603","CLSA-2026-1792251053","CLSA-2026-1792281043","CLSA-2026-1792281709","CLSA-2026-1792325307","CLSA-2026-1792326025","CLSA-2026-1792345167","CLSA-2026-1792345218","CLSA-2026-1792345219","CLSA-2026-1792345233","CLSA-2026-1792345722","CLSA-2026-1792357216","CLSA-2026-1792357217","CLSA-2026-1792366530","CLSA-2026-1792366897","CLSA-2026-1792371588","CLSA-2026-1792372069","CLSA-2026-1792376142","CLSA-2026-1792376143","CLSA-2026-1792379945","CLSA-2026-1792380386","CLSA-2026-1792382994","CLSA-2026-1792383054","CLSA-2026-1792386456","CLSA-2026-1792386484","DEBIAN-CVE-2026-32635","EUVD-2026-12140","GHSA-g93w-mfhg-p222","UBUNTU-CVE-2026-32635"],"status":"published","title":"Angular has XSS in i18n attribute bindings","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","severity":{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna","from":"cve"},"epss":{"day":"2026-11-09","score":0.00536,"percentile":0.45448,"model":"v2026.06.15"},"facts":{"in_kev":false,"known_exploited":false,"public_exploit":true,"fix_available":true},"cwes":["CWE-79"],"published":"2026-03-13T20:56:18Z","modified":"2026-11-02T19:59:09Z","exploits":[{"source":"pocgithub","id":"fevar54/CVE-2026-32635-Angular-XSS-Mitigation-","title":"fevar54/CVE-2026-32635-Angular-XSS-Mitigation-","date":"2026-08-25","url":"https://github.com/fevar54/CVE-2026-32635-Angular-XSS-Mitigation-"}],"fixes":[{"ecosystem":"npm","package":"@angular/core","fixed_in":["22.0.0-next.3","21.2.4","20.3.18","19.2.20"],"sources":["ghsa","osv"]},{"ecosystem":"npm","package":"@angular/compiler","fixed_in":["22.0.0-next.3","21.2.4","20.3.18","19.2.20"],"sources":["ghsa","osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/bazel","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/benchpress","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/language-service","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/animations","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/router","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/upgrade","fixed_in":["17.3.12-tuxcare.7","18.2.14-tuxcare.5"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/compiler","fixed_in":["17.3.12-tuxcare.7","18.2.14-tuxcare.5"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/common","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/compiler-cli","fixed_in":["17.3.12-tuxcare.7","18.2.14-tuxcare.5"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/core","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/elements","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/forms","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/localize","fixed_in":["17.3.12-tuxcare.7","18.2.14-tuxcare.5"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/platform-browser","fixed_in":["17.3.12-tuxcare.7","18.2.14-tuxcare.5"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/platform-server","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/platform-browser-dynamic","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]},{"ecosystem":"TuxCare:npm","package":"@angular/service-worker","fixed_in":["18.2.14-tuxcare.5","17.3.12-tuxcare.7"],"sources":["osv"]}],"affected":[{"source":"ghsa","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"22.0.0-next.0"},{"fixed":"22.0.0-next.3"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"21.0.0-next.0"},{"fixed":"21.2.4"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"20.0.0-next.0.0.0"},{"fixed":"20.3.18"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"22.0.0-next.0"},{"fixed":"22.0.0-next.3"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"21.0.0-next.0"},{"fixed":"21.2.4"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"20.0.0-next.0.0.0"},{"fixed":"20.3.18"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"19.0.0-next.0"},{"fixed":"19.2.20"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.0.0-next.0"},{"last_affected":"18.2.14"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"19.0.0-next.0"},{"fixed":"19.2.20"}]}]},{"source":"ghsa","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.0.0-next.0"},{"last_affected":"18.2.14"}]}]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/bazel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/benchpress","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/language-service","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/bazel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/benchpress","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/language-service","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/bazel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.1.2-tuxcare.0"},{"fixed":"18.1.2-tuxcare.2"}]}],"versions":["18.1.2","18.1.2-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/benchpress","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.1.2-tuxcare.0"},{"fixed":"18.1.2-tuxcare.2"}]}],"versions":["18.1.2","18.1.2-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/language-service","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.1.2-tuxcare.0"},{"fixed":"18.1.2-tuxcare.2"}]}],"versions":["18.1.2","18.1.2-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/bazel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.12-tuxcare.0"},{"fixed":"18.2.12-tuxcare.2"}]}],"versions":["18.2.12","18.2.12-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/benchpress","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.12-tuxcare.0"},{"fixed":"18.2.12-tuxcare.2"}]}],"versions":["18.2.12","18.2.12-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/language-service","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.12-tuxcare.0"},{"fixed":"18.2.12-tuxcare.2"}]}],"versions":["18.2.12","18.2.12-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/bazel","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.1.0-tuxcare.0"},{"fixed":"17.1.0-tuxcare.2"}]}],"versions":["17.1.0","17.1.0-tuxcare.1"],"bundled":17},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/benchpress","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.1.0-tuxcare.0"},{"fixed":"17.1.0-tuxcare.2"}]}],"versions":["17.1.0","17.1.0-tuxcare.1"],"bundled":17},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/language-service","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.1.0-tuxcare.0"},{"fixed":"17.1.0-tuxcare.2"}]}],"versions":["17.1.0","17.1.0-tuxcare.1"],"bundled":17},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/animations","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/animations","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/router","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/upgrade","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/upgrade","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.12-tuxcare.0"},{"fixed":"18.2.12-tuxcare.2"}]}],"versions":["18.2.12","18.2.12-tuxcare.1"],"bundled":14},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.1.2-tuxcare.0"},{"fixed":"18.1.2-tuxcare.2"}]}],"versions":["18.1.2","18.1.2-tuxcare.1"],"bundled":14},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.1.0-tuxcare.0"},{"fixed":"17.1.0-tuxcare.2"}]}],"versions":["17.1.0","17.1.0-tuxcare.1"],"bundled":15},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/common","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler-cli","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/compiler-cli","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.1.2-tuxcare.0"},{"fixed":"18.1.2-tuxcare.2"}]}],"versions":["18.1.2","18.1.2-tuxcare.1"],"bundled":17},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.12-tuxcare.0"},{"fixed":"18.2.12-tuxcare.2"}]}],"versions":["18.2.12","18.2.12-tuxcare.1"],"bundled":17},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.1.0-tuxcare.0"},{"fixed":"17.1.0-tuxcare.2"}]}],"versions":["17.1.0","17.1.0-tuxcare.1"],"bundled":18},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/core","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/elements","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/elements","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/forms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/forms","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/localize","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/localize","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-browser","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-browser","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-server","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-browser-dynamic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/platform-browser-dynamic","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/service-worker","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"18.2.14-tuxcare.0"},{"fixed":"18.2.14-tuxcare.5"}]}],"versions":["18.2.14","18.2.14-tuxcare.1","18.2.14-tuxcare.2","18.2.14-tuxcare.3","18.2.14-tuxcare.4"]},{"source":"osv","ecosystem":"TuxCare:npm","package":"@angular/service-worker","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"17.3.12-tuxcare.0"},{"fixed":"17.3.12-tuxcare.7"}]}],"versions":["17.3.12","17.3.12-tuxcare.1","17.3.12-tuxcare.2","17.3.12-tuxcare.3","17.3.12-tuxcare.4","17.3.12-tuxcare.5","17.3.12-tuxcare.6"]},{"source":"osv","ecosystem":"Debian:12","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-1","1.8.3-1+deb12u1","1.8.3-1+deb12u1~deb11u1","1.8.3-2","1.8.3-3"]},{"source":"osv","ecosystem":"Debian:13","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-3"]},{"source":"osv","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"SEMVER","events":[{"introduced":"22.0.0-next.0"},{"fixed":"22.0.0-next.3"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"SEMVER","events":[{"introduced":"21.0.0-next.0"},{"fixed":"21.2.4"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"SEMVER","events":[{"introduced":"20.0.0-next.0.0.0"},{"fixed":"20.3.18"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"SEMVER","events":[{"introduced":"19.0.0-next.0"},{"fixed":"19.2.20"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/core","ranges":[{"type":"SEMVER","events":[{"introduced":"17.0.0-next.0"},{"last_affected":"18.2.14"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"SEMVER","events":[{"introduced":"22.0.0-next.0"},{"fixed":"22.0.0-next.3"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"SEMVER","events":[{"introduced":"21.0.0-next.0"},{"fixed":"21.2.4"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"SEMVER","events":[{"introduced":"20.0.0-next.0.0.0"},{"fixed":"20.3.18"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"SEMVER","events":[{"introduced":"19.0.0-next.0"},{"fixed":"19.2.20"}]}]},{"source":"osv","ecosystem":"npm","package":"@angular/compiler","ranges":[{"type":"SEMVER","events":[{"introduced":"17.0.0-next.0"},{"last_affected":"18.2.14"}]}]},{"source":"osv","ecosystem":"Ubuntu:Pro:16.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.2.28-1ubuntu2","1.2.28-1ubuntu2+esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:18.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.10-1","1.5.10-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:Pro:20.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.5.10-1","1.7.9-1","1.7.9-1ubuntu0.1~esm1"]},{"source":"osv","ecosystem":"Ubuntu:22.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.2-2","1.8.2-2ubuntu0.1"]},{"source":"osv","ecosystem":"Ubuntu:24.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-1","1.8.3-1ubuntu0.24.04.1"]},{"source":"osv","ecosystem":"Ubuntu:25.10","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-1","1.8.3-3"]},{"source":"osv","ecosystem":"Ubuntu:26.10","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-3"]},{"source":"osv","ecosystem":"Ubuntu:26.04:LTS","package":"angular.js","ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"0"}]}],"versions":["1.8.3-3"]}],"products":[{"vendor":"@angular","product":"compiler"},{"vendor":"@angular","product":"core"},{"vendor":"angular","product":"angular_cli"},{"vendor":"opnsense","product":"core"}],"references":[{"url":"https://github.com/angular/angular/security/advisories/GHSA-g93w-mfhg-p222","tags":["x_refsource_CONFIRM","Mitigation","Vendor Advisory","advisory","web","report"]},{"url":"https://github.com/angular/angular/pull/67541","tags":["x_refsource_MISC","Issue Tracking","Patch","fix","web"]},{"url":"https://github.com/angular/angular/pull/67561","tags":["x_refsource_MISC","Issue Tracking","Patch","fix","web"]},{"url":"https://github.com/angular/angular/commit/224e60ecb1b90115baa702f1c06edc1d64d86187","tags":["web"]},{"url":"https://github.com/angular/angular/commit/78dea55351fb305b33a919c43a6b363137eca166","tags":["web"]},{"url":"https://github.com/angular/angular/commit/8630319f74c9575a21693d875cc7d5252516146d","tags":["web"]},{"url":"https://github.com/angular/angular/commit/ed2d324f9cc12aab6cfa0569ef10b73243a62c65","tags":["web"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-32635","tags":["advisory"]},{"url":"https://github.com/advisories/GHSA-g93w-mfhg-p222"},{"url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/32xxx/CVE-2026-32635.json","tags":["advisory"]},{"url":"https://security-tracker.debian.org/tracker/CVE-2026-32635","tags":["advisory"]},{"url":"https://github.com/angular/angular","tags":["package"]},{"url":"https://ubuntu.com/security/CVE-2026-32635","tags":["report"]},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-32635","tags":["report"]}],"sources":{"cve":[{"id":"CVE-2026-32635","title":"Angular has XSS in i18n attribute bindings","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-13T20:58:12.554Z","modified":"2026-03-17T03:55:33.785Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high","assessor":"cna"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:19:57.47301Z"}],"euvd":[{"id":"EUVD-2026-12140","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-13T20:58:12Z","modified":"2026-03-17T03:55:33Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"updated_at":"2026-11-02T19:25:33.692584Z"}],"ghsa":[{"id":"GHSA-g93w-mfhg-p222","title":"Angular vulnerable to XSS in i18n attribute bindings","description":"A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding `i18n-\u003cattribute\u003e` name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. \n\nThe following example illustrates the issue:\n```html\n\u003ca href=\"{{maliciousUrl}}\" i18n-href\u003eClick me\u003c/a\u003e\n```\n\nThe following attributes have been confirmed to be vulnerable:\n- `action`\n- `background`\n- `cite`\n- `codebase`\n- `data`\n- `formaction`\n- `href`\n- `itemtype`\n- `longdesc`\n- `poster`\n- `src`\n- `xlink:href`\n\n### Impact\nWhen exploited, this vulnerability allows an attacker to execute arbitrary code within the context of the vulnerable application's domain. This enables:\n- Session Hijacking: Stealing session cookies and authentication tokens.\n- Data Exfiltration: Capturing and transmitting sensitive user data.\n- Unauthorized Actions: Performing actions on behalf of the user.\n\n### Attack Preconditions\n1. The application must use a vulnerable version of Angular.\n2. The application must bind unsanitized user input to one of the attributes mentioned above.\n3. The bound value must be marked for internationalization via the presence of a `i18n-\u003cname\u003e` attribute on the same element.\n\n### Patches\n- 22.0.0-next.3\n- 21.2.4\n- 20.3.18\n- 19.2.20\n\n### Workarounds\nThe primary workaround is to ensure that any data bound to the vulnerable attributes is **never sourced from untrusted user input** (e.g., database, API response, URL parameters) until the patch is applied, or when it is, it shouldn't be marked for internationalization.\n\nAlternatively, users can explicitly sanitize their attributes by passing them through Angular's `DomSanitizer`:\n```ts\nimport {Component, inject, SecurityContext} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Component({\n  template: `\n    \u003cform action=\"{{url}}\" i18n-action\u003e\n      \u003cbutton\u003eSubmit\u003c/button\u003e\n    \u003c/form\u003e\n  `,\n})\nexport class App {\n  url: string;\n\n  constructor() {\n    const dangerousUrl = 'javascript:alert(1)';\n    const sanitizer = inject(DomSanitizer);\n    this.url = sanitizer.sanitize(SecurityContext.URL, dangerousUrl) || '';\n  }\n}\n```\n\n### References\n- [Fix 1](https://github.com/angular/angular/pull/67541) \n- [Fix 2](https://github.com/angular/angular/pull/67561)","status":"published","published":"2026-03-13T20:56:18Z","modified":"2026-05-06T20:33:11Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H","level":"critical"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:40:02.883746Z"}],"nvd":[{"id":"CVE-2026-32635","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-16T14:19:40.753Z","modified":"2026-06-17T10:36:08.51Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","level":"high","assessor":"secondary"},{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H","level":"critical","assessor":"primary"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T14:12:09.358914Z"}],"osv":[{"id":"CVE-2026-32635","title":"Angular has XSS in i18n attribute bindings","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-13T20:58:12.554Z","modified":"2026-10-28T02:30:27.937236047Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:45:01.548715Z"},{"id":"DEBIAN-CVE-2026-32635","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-16T14:19:40.753Z","modified":"2026-10-01T03:03:21.843672391Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T15:45:54.232518Z"},{"id":"GHSA-g93w-mfhg-p222","title":"Angular vulnerable to XSS in i18n attribute bindings","description":"A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding `i18n-\u003cattribute\u003e` name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. \n\nThe following example illustrates the issue:\n```html\n\u003ca href=\"{{maliciousUrl}}\" i18n-href\u003eClick me\u003c/a\u003e\n```\n\nThe following attributes have been confirmed to be vulnerable:\n- `action`\n- `background`\n- `cite`\n- `codebase`\n- `data`\n- `formaction`\n- `href`\n- `itemtype`\n- `longdesc`\n- `poster`\n- `src`\n- `xlink:href`\n\n### Impact\nWhen exploited, this vulnerability allows an attacker to execute arbitrary code within the context of the vulnerable application's domain. This enables:\n- Session Hijacking: Stealing session cookies and authentication tokens.\n- Data Exfiltration: Capturing and transmitting sensitive user data.\n- Unauthorized Actions: Performing actions on behalf of the user.\n\n### Attack Preconditions\n1. The application must use a vulnerable version of Angular.\n2. The application must bind unsanitized user input to one of the attributes mentioned above.\n3. The bound value must be marked for internationalization via the presence of a `i18n-\u003cname\u003e` attribute on the same element.\n\n### Patches\n- 22.0.0-next.3\n- 21.2.4\n- 20.3.18\n- 19.2.20\n\n### Workarounds\nThe primary workaround is to ensure that any data bound to the vulnerable attributes is **never sourced from untrusted user input** (e.g., database, API response, URL parameters) until the patch is applied, or when it is, it shouldn't be marked for internationalization.\n\nAlternatively, users can explicitly sanitize their attributes by passing them through Angular's `DomSanitizer`:\n```ts\nimport {Component, inject, SecurityContext} from '@angular/core';\nimport {DomSanitizer} from '@angular/platform-browser';\n\n@Component({\n  template: `\n    \u003cform action=\"{{url}}\" i18n-action\u003e\n      \u003cbutton\u003eSubmit\u003c/button\u003e\n    \u003c/form\u003e\n  `,\n})\nexport class App {\n  url: string;\n\n  constructor() {\n    const dangerousUrl = 'javascript:alert(1)';\n    const sanitizer = inject(DomSanitizer);\n    this.url = sanitizer.sanitize(SecurityContext.URL, dangerousUrl) || '';\n  }\n}\n```\n\n### References\n- [Fix 1](https://github.com/angular/angular/pull/67541) \n- [Fix 2](https://github.com/angular/angular/pull/67561)","status":"published","published":"2026-03-13T20:56:18Z","modified":"2026-05-06T20:48:48.425804Z","cvss":[{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H","level":"critical"},{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"}],"cwes":["CWE-79"],"updated_at":"2026-11-02T15:46:47.472172Z"},{"id":"UBUNTU-CVE-2026-32635","description":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20, a Cross-Site Scripting (XSS) vulnerability has been identified in the Angular runtime and compiler. It occurs when the application uses a security-sensitive attribute (for example href on an anchor tag) together with Angular's ability to internationalize attributes. Enabling internationalization for the sensitive attribute by adding i18n-\u003cattribute\u003e name bypasses Angular's built-in sanitization mechanism, which when combined with a data binding to untrusted user-generated data can allow an attacker to inject a malicious script. This vulnerability is fixed in 22.0.0-next.3, 21.2.4, 20.3.18, and 19.2.20.","status":"published","published":"2026-03-16T14:19:00Z","modified":"2026-10-17T12:58:09.430779642Z","cvss":[{"version":"4.0","score":8.6,"vector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","level":"high"},{"version":"3.1","score":9,"vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:C/C:H/I:H/A:H","level":"critical"}],"updated_at":"2026-11-02T16:56:16.036833Z"},{"id":"CLSA-2026-1775521847","title":"TuxCare security update for @angular (1 CVE)","description":"TuxCare rebuilt 3 @angular packages to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-08-04T14:52:22Z","modified":"2026-10-19T07:45:07.163399495Z","updated_at":"2026-11-02T15:43:44.009773Z"},{"id":"CLSA-2026-1775521853","title":"TuxCare security update for @angular (1 CVE)","description":"TuxCare rebuilt 3 @angular packages to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-08-04T14:52:22Z","modified":"2026-10-19T07:45:05.178653474Z","updated_at":"2026-11-02T15:43:44.009773Z"},{"id":"CLSA-2026-1782954037","title":"TuxCare security update for @angular (15 CVEs)","description":"TuxCare rebuilt 3 @angular packages to address 15 CVEs. Fixed in 18.1.2-tuxcare.2.","status":"published","published":"2026-08-04T14:52:41Z","modified":"2026-10-23T19:28:14.157391401Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1782954038","title":"TuxCare security update for @angular (15 CVEs)","description":"TuxCare rebuilt 3 @angular packages to address 15 CVEs. Fixed in 18.2.12-tuxcare.2.","status":"published","published":"2026-08-04T14:52:41Z","modified":"2026-10-23T19:28:13.059049444Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1783126874","title":"TuxCare security update for @angular (17 CVEs)","description":"TuxCare rebuilt 3 @angular packages to address 17 CVEs. Fixed in 17.1.0-tuxcare.2.","status":"published","published":"2026-08-04T14:52:41Z","modified":"2026-10-23T19:28:12.985288462Z","updated_at":"2026-11-02T15:43:45.794021Z"},{"id":"CLSA-2026-1792161115","title":"TuxCare security update for @angular/animations (1 CVE)","description":"TuxCare rebuilt @angular/animations to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-16T14:31:55Z","modified":"2026-10-21T20:31:03.055170771Z","updated_at":"2026-11-02T15:43:50.949147Z"},{"id":"CLSA-2026-1792161116","title":"TuxCare security update for @angular/animations (1 CVE)","description":"TuxCare rebuilt @angular/animations to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-16T14:31:56Z","modified":"2026-10-21T20:31:02.10400701Z","updated_at":"2026-11-02T15:43:50.949147Z"},{"id":"CLSA-2026-1792163504","title":"TuxCare security update for @angular/router (1 CVE)","description":"TuxCare rebuilt @angular/router to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-16T15:11:44Z","modified":"2026-10-21T20:31:05.473013026Z","updated_at":"2026-11-02T15:43:51.466048Z"},{"id":"CLSA-2026-1792163505","title":"TuxCare security update for @angular/router (1 CVE)","description":"TuxCare rebuilt @angular/router to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-16T15:11:45Z","modified":"2026-10-21T20:31:06.581071948Z","updated_at":"2026-11-02T15:43:51.466048Z"},{"id":"CLSA-2026-1792208088","title":"TuxCare security update for @angular/upgrade (1 CVE)","description":"TuxCare rebuilt @angular/upgrade to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-17T03:34:44Z","modified":"2026-10-21T20:31:09.264326077Z","updated_at":"2026-11-02T15:43:51.747192Z"},{"id":"CLSA-2026-1792208571","title":"TuxCare security update for @angular/upgrade (1 CVE)","description":"TuxCare rebuilt @angular/upgrade to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-17T03:42:51Z","modified":"2026-10-21T20:31:13.970812911Z","updated_at":"2026-11-02T15:43:51.747192Z"},{"id":"CLSA-2026-1792250225","title":"TuxCare security update for @angular/compiler (14 CVEs)","description":"TuxCare rebuilt @angular/compiler to address 14 CVEs. Fixed in 18.2.12-tuxcare.2.","status":"published","published":"2026-10-17T15:17:01Z","modified":"2026-11-02T19:58:37.764142855Z","updated_at":"2026-11-02T20:23:16.654089Z"},{"id":"CLSA-2026-1792250477","title":"TuxCare security update for @angular/compiler (1 CVE)","description":"TuxCare rebuilt @angular/compiler to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-17T15:21:13Z","modified":"2026-10-21T20:31:17.080172691Z","updated_at":"2026-11-02T15:43:52.011757Z"},{"id":"CLSA-2026-1792250594","title":"TuxCare security update for @angular/compiler (1 CVE)","description":"TuxCare rebuilt @angular/compiler to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-17T15:23:13Z","modified":"2026-10-21T20:31:21.855206988Z","updated_at":"2026-11-02T15:43:52.011757Z"},{"id":"CLSA-2026-1792250603","title":"TuxCare security update for @angular/compiler (14 CVEs)","description":"TuxCare rebuilt @angular/compiler to address 14 CVEs. Fixed in 18.1.2-tuxcare.2.","status":"published","published":"2026-10-17T15:23:19Z","modified":"2026-11-02T19:59:09.029450751Z","updated_at":"2026-11-02T20:20:54.36149Z"},{"id":"CLSA-2026-1792251053","title":"TuxCare security update for @angular/compiler (15 CVEs)","description":"TuxCare rebuilt @angular/compiler to address 15 CVEs. Fixed in 17.1.0-tuxcare.2.","status":"published","published":"2026-10-17T15:30:49Z","modified":"2026-11-02T19:58:52.348889465Z","updated_at":"2026-11-02T20:22:11.1598Z"},{"id":"CLSA-2026-1792281043","title":"TuxCare security update for @angular/common (1 CVE)","description":"TuxCare rebuilt @angular/common to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-17T23:50:39Z","modified":"2026-10-21T20:31:24.131304249Z","updated_at":"2026-11-02T15:43:52.288832Z"},{"id":"CLSA-2026-1792281709","title":"TuxCare security update for @angular/common (1 CVE)","description":"TuxCare rebuilt @angular/common to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-18T00:01:45Z","modified":"2026-10-21T20:30:18.425778766Z","updated_at":"2026-11-02T15:43:52.288832Z"},{"id":"CLSA-2026-1792325307","title":"TuxCare security update for @angular/compiler-cli (1 CVE)","description":"TuxCare rebuilt @angular/compiler-cli to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-18T12:08:23Z","modified":"2026-10-21T20:31:28.87499788Z","updated_at":"2026-11-02T15:43:52.545698Z"},{"id":"CLSA-2026-1792326025","title":"TuxCare security update for @angular/compiler-cli (1 CVE)","description":"TuxCare rebuilt @angular/compiler-cli to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-18T12:20:21Z","modified":"2026-10-21T20:31:34.375400865Z","updated_at":"2026-11-02T15:43:52.545698Z"},{"id":"CLSA-2026-1792345167","title":"TuxCare security update for @angular/core (1 CVE)","description":"TuxCare rebuilt @angular/core to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-18T17:39:23Z","modified":"2026-10-21T20:31:33.492297945Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792345218","title":"TuxCare security update for @angular/core (17 CVEs)","description":"TuxCare rebuilt @angular/core to address 17 CVEs. Fixed in 18.1.2-tuxcare.2.","status":"published","published":"2026-10-18T17:40:14Z","modified":"2026-10-18T19:15:49.433928106Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792345219","title":"TuxCare security update for @angular/core (17 CVEs)","description":"TuxCare rebuilt @angular/core to address 17 CVEs. Fixed in 18.2.12-tuxcare.2.","status":"published","published":"2026-10-18T17:40:15Z","modified":"2026-10-18T19:15:49.383543946Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792345233","title":"TuxCare security update for @angular/core (18 CVEs)","description":"TuxCare rebuilt @angular/core to address 18 CVEs. Fixed in 17.1.0-tuxcare.2.","status":"published","published":"2026-10-18T17:40:29Z","modified":"2026-10-18T19:15:50.691558896Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792345722","title":"TuxCare security update for @angular/core (1 CVE)","description":"TuxCare rebuilt @angular/core to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-18T17:48:40Z","modified":"2026-10-21T20:31:38.774434152Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792357216","title":"TuxCare security update for @angular/elements (1 CVE)","description":"TuxCare rebuilt @angular/elements to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-18T21:00:12Z","modified":"2026-10-21T20:31:38.756737665Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792357217","title":"TuxCare security update for @angular/elements (1 CVE)","description":"TuxCare rebuilt @angular/elements to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-18T21:00:13Z","modified":"2026-10-21T20:31:39.814236489Z","updated_at":"2026-11-02T15:43:52.782414Z"},{"id":"CLSA-2026-1792366530","title":"TuxCare security update for @angular/forms (1 CVE)","description":"TuxCare rebuilt @angular/forms to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-18T23:35:26Z","modified":"2026-10-21T20:30:39.623024657Z","updated_at":"2026-11-02T15:43:53.071325Z"},{"id":"CLSA-2026-1792366897","title":"TuxCare security update for @angular/forms (1 CVE)","description":"TuxCare rebuilt @angular/forms to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-18T23:41:33Z","modified":"2026-10-21T20:31:42.22183261Z","updated_at":"2026-11-02T15:43:53.071325Z"},{"id":"CLSA-2026-1792371588","title":"TuxCare security update for @angular/localize (1 CVE)","description":"TuxCare rebuilt @angular/localize to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-19T00:59:44Z","modified":"2026-10-21T20:31:42.375807229Z","updated_at":"2026-11-02T15:43:53.353888Z"},{"id":"CLSA-2026-1792372069","title":"TuxCare security update for @angular/localize (1 CVE)","description":"TuxCare rebuilt @angular/localize to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-19T01:07:48Z","modified":"2026-10-21T20:30:44.838732568Z","updated_at":"2026-11-02T15:43:53.353888Z"},{"id":"CLSA-2026-1792376142","title":"TuxCare security update for @angular/platform-browser (1 CVE)","description":"TuxCare rebuilt @angular/platform-browser to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-19T02:15:41Z","modified":"2026-10-21T20:30:26.818435997Z","updated_at":"2026-11-02T15:43:53.624926Z"},{"id":"CLSA-2026-1792376143","title":"TuxCare security update for @angular/platform-browser (1 CVE)","description":"TuxCare rebuilt @angular/platform-browser to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-19T02:15:41Z","modified":"2026-10-21T20:30:27.516996222Z","updated_at":"2026-11-02T15:43:53.624926Z"},{"id":"CLSA-2026-1792379945","title":"TuxCare security update for @angular/platform-server (1 CVE)","description":"TuxCare rebuilt @angular/platform-server to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-19T03:19:01Z","modified":"2026-10-21T20:30:25.355034288Z","updated_at":"2026-11-02T15:43:53.624926Z"},{"id":"CLSA-2026-1792380386","title":"TuxCare security update for @angular/platform-server (1 CVE)","description":"TuxCare rebuilt @angular/platform-server to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-19T03:26:22Z","modified":"2026-10-21T20:31:49.963039261Z","updated_at":"2026-11-02T15:43:53.624926Z"},{"id":"CLSA-2026-1792382994","title":"TuxCare security update for @angular/platform-browser-dynamic (1 CVE)","description":"TuxCare rebuilt @angular/platform-browser-dynamic to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-19T04:09:50Z","modified":"2026-10-21T20:31:52.998347498Z","updated_at":"2026-11-02T15:43:53.876957Z"},{"id":"CLSA-2026-1792383054","title":"TuxCare security update for @angular/platform-browser-dynamic (1 CVE)","description":"TuxCare rebuilt @angular/platform-browser-dynamic to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-19T04:10:54Z","modified":"2026-10-21T20:31:52.151345437Z","updated_at":"2026-11-02T15:43:53.876957Z"},{"id":"CLSA-2026-1792386456","title":"TuxCare security update for @angular/service-worker (1 CVE)","description":"TuxCare rebuilt @angular/service-worker to address 1 CVE. Fixed in 18.2.14-tuxcare.5.","status":"published","published":"2026-10-19T05:07:32Z","modified":"2026-10-21T20:30:07.866075261Z","updated_at":"2026-11-02T15:43:54.119956Z"},{"id":"CLSA-2026-1792386484","title":"TuxCare security update for @angular/service-worker (1 CVE)","description":"TuxCare rebuilt @angular/service-worker to address 1 CVE. Fixed in 17.3.12-tuxcare.7.","status":"published","published":"2026-10-19T05:08:00Z","modified":"2026-10-21T20:31:55.466242148Z","updated_at":"2026-11-02T15:43:54.119956Z"}]}}
