Staging Environment: Content and features may be unstable or change without notice.
Search for packages
Package details: pkg:npm/%40angular/compiler@19.2.18
purl pkg:npm/%40angular/compiler@19.2.18
Next non-vulnerable version 19.2.20
Latest non-vulnerable version 22.0.0-next.3
Risk 4.0
Vulnerabilities affecting this package (1)
Vulnerability Summary Fixed by
VCID-1j73-ybyt-p7hh
Aliases:
CVE-2026-32635
GHSA-g93w-mfhg-p222
Angular vulnerable to XSS in i18n attribute bindings 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-<attribute>` 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. The following example illustrates the issue: ```html <a href="{{maliciousUrl}}" i18n-href>Click me</a> ``` The following attributes have been confirmed to be vulnerable: - `action` - `background` - `cite` - `codebase` - `data` - `formaction` - `href` - `itemtype` - `longdesc` - `poster` - `src` - `xlink:href` ### Impact When exploited, this vulnerability allows an attacker to execute arbitrary code within the context of the vulnerable application's domain. This enables: - Session Hijacking: Stealing session cookies and authentication tokens. - Data Exfiltration: Capturing and transmitting sensitive user data. - Unauthorized Actions: Performing actions on behalf of the user. ### Attack Preconditions 1. The application must use a vulnerable version of Angular. 2. The application must bind unsanitized user input to one of the attributes mentioned above. 3. The bound value must be marked for internationalization via the presence of a `i18n-<name>` attribute on the same element. ### Patches - 22.0.0-next.3 - 21.2.4 - 20.3.18 - 19.2.20 ### Workarounds The 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. Alternatively, users can explicitly sanitize their attributes by passing them through Angular's `DomSanitizer`: ```ts import {Component, inject, SecurityContext} from '@angular/core'; import {DomSanitizer} from '@angular/platform-browser'; @Component({ template: ` <form action="{{url}}" i18n-action> <button>Submit</button> </form> `, }) export class App { url: string; constructor() { const dangerousUrl = 'javascript:alert(1)'; const sanitizer = inject(DomSanitizer); this.url = sanitizer.sanitize(SecurityContext.URL, dangerousUrl) || ''; } } ``` ### References - [Fix 1](https://github.com/angular/angular/pull/67541) - [Fix 2](https://github.com/angular/angular/pull/67561)
19.2.20
Affected by 0 other vulnerabilities.
20.3.18
Affected by 0 other vulnerabilities.
21.2.4
Affected by 0 other vulnerabilities.
22.0.0-next.3
Affected by 0 other vulnerabilities.
Vulnerabilities fixed by this package (1)
Vulnerability Summary Aliases
VCID-ms76-c5dn-23hx Angular has XSS Vulnerability via Unsanitized SVG Script Attributes A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular Template Compiler. The vulnerability exists because Angular’s internal sanitization schema fails to recognize the `href` and `xlink:href` attributes of SVG `<script>` elements as a **Resource URL** context. In a standard security model, attributes that can load and execute code (like a script's source) should be strictly validated. However, because the compiler does not classify these specific SVG attributes correctly, it allows attackers to bypass Angular's built-in security protections. When template binding is used to assign user-controlled data to these attributes for example, `<script [attr.href]="userInput">` the compiler treats the value as a standard string or a non-sensitive URL rather than a resource link. This enables an attacker to provide a malicious payload, such as a `data:text/javascript` URI or a link to an external malicious script. ### Impact When successfully exploited, this vulnerability allows for **arbitrary JavaScript execution** within the context of the victim's browser session. This can lead to: - **Session Hijacking:** Stealing session cookies, localStorage data, or authentication tokens. - **Data Exfiltration:** Accessing and transmitting sensitive information displayed within the application. - **Unauthorized Actions:** Performing state-changing actions (like clicking buttons or submitting forms) on behalf of the authenticated user. ### Attack Preconditions 1. The victim application must explicitly use SVG `<script>` elements within its templates. 2. The application must use property or attribute binding (interpolation) for the `href` or `xlink:href` attributes of those SVG scripts. 3. The data bound to these attributes must be derived from an untrusted source (e.g., URL parameters, user-submitted database entries, or unsanitized API responses). ### Patches - 19.2.18 - 20.3.16 - 21.0.7 - 21.1.0-rc.0 ### Workarounds Until the patch is applied, developers should: - **Avoid Dynamic Bindings**: Do not use Angular template binding (e.g., `[attr.href]`) for SVG `<script>` elements. - **Input Validation**: If dynamic values must be used, strictly validate the input against a strict allowlist of trusted URLs on the server side or before it reaches the template. ### Resources - https://github.com/angular/angular/pull/66318 CVE-2026-22610
GHSA-jrmj-c5cx-3cw6

Date Actor Action Vulnerability Source VulnerableCode Version
2026-04-17T00:40:27.659909+00:00 GitLab Importer Affected by VCID-1j73-ybyt-p7hh https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-32635.yml 38.4.0
2026-04-17T00:07:14.023047+00:00 GitLab Importer Fixing VCID-ms76-c5dn-23hx https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-22610.yml 38.4.0
2026-04-13T14:31:18.817977+00:00 GitLab Importer Affected by VCID-1j73-ybyt-p7hh https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-32635.yml 38.3.0
2026-04-12T01:30:39.965380+00:00 GitLab Importer Fixing VCID-ms76-c5dn-23hx https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-22610.yml 38.3.0
2026-04-03T01:39:29.296215+00:00 GitLab Importer Fixing VCID-ms76-c5dn-23hx https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-22610.yml 38.1.0
2026-04-01T16:07:42.964085+00:00 GHSA Importer Fixing VCID-ms76-c5dn-23hx https://github.com/advisories/GHSA-jrmj-c5cx-3cw6 38.0.0
2026-04-01T12:53:38.221546+00:00 GitLab Importer Fixing VCID-ms76-c5dn-23hx https://gitlab.com/gitlab-org/advisories-community/-/blob/main/npm/@angular/compiler/CVE-2026-22610.yml 38.0.0
2026-04-01T12:52:27.810355+00:00 GithubOSV Importer Fixing VCID-ms76-c5dn-23hx https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2026/01/GHSA-jrmj-c5cx-3cw6/GHSA-jrmj-c5cx-3cw6.json 38.0.0