fix(deps): update dependency @angular/compiler to v20.3.25 [security]#208
Open
renovate[bot] wants to merge 1 commit into
Open
fix(deps): update dependency @angular/compiler to v20.3.25 [security]#208renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
dddb175 to
b872a3b
Compare
b872a3b to
9593f36
Compare
9593f36 to
949220f
Compare
949220f to
faea1e8
Compare
faea1e8 to
76aa046
Compare
76aa046 to
a8434a5
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
20.2.0→20.3.25Angular Stored XSS Vulnerability via SVG Animation, SVG URL and MathML Attributes
CVE-2025-66412 / GHSA-v4hv-rgfq-gp49
More information
Details
A Stored Cross-Site Scripting (XSS) vulnerability has been identified in the Angular Template Compiler. It occurs because the compiler's internal security schema is incomplete, allowing attackers to bypass Angular's built-in security sanitization. Specifically, the schema fails to classify certain URL-holding attributes (e.g., those that could contain
javascript:URLs) as requiring strict URL security, enabling the injection of malicious scripts.Additionally, a related vulnerability exists involving SVG animation elements (
<animate>,<set>,<animateMotion>,<animateTransform>). TheattributeNameattribute on these elements was not properly validated, allowing attackers to dynamically target security-sensitive attributes likehreforxlink:hrefon other elements. By bindingattributeNameto "href" and providing ajavascript:URL in thevaluesortoattribute, an attacker could bypass sanitization and execute arbitrary code.Attributes confirmed to be vulnerable include:
xlink:href), and various MathML attributes (e.g.,math|href,annotation|href).attributeNameattribute when bound to "href" or "xlink:href".When template binding is used to assign untrusted, user-controlled data to these attributes (e.g.,
[attr.xlink:href]="maliciousURL"or<animate [attributeName]="'href'" [values]="maliciousURL">), the compiler incorrectly falls back to a non-sanitizing context or fails to block the dangerous attribute assignment. This allows an attacker to inject ajavascript:URLpayload. Upon user interaction (like a click) on the element, or automatically in the case of animations, the malicious JavaScript executes in the context of the application's origin.Impact
When exploited, this vulnerability allows an attacker to execute arbitrary code within the context of the vulnerable application's domain. This enables:
Patches
Attack Preconditions
attributeNameof an SVG animation element.Workarounds
If you cannot upgrade, you can workaround the issue by ensuring that any data bound to the vulnerable attributes is never sourced from untrusted user input (e.g., database, API response, URL parameters).
[attr.xlink:href]="maliciousURL") to assign untrusted data to the vulnerable SVG/MathML attributes.attributeNameon SVG Animations: Do not bind untrusted data to theattributeNameattribute of SVG animation elements (<animate>,<set>, etc.).javascript:URLs.Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Angular has XSS Vulnerability via Unsanitized SVG Script Attributes
CVE-2026-22610 / GHSA-jrmj-c5cx-3cw6
More information
Details
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
hrefandxlink:hrefattributes 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 adata:text/javascriptURI 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:
Attack Preconditions
<script>elements within its templates.hreforxlink:hrefattributes of those SVG scripts.Patches
Workarounds
Until the patch is applied, developers should:
[attr.href]) for SVG<script>elements.Resources
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Angular vulnerable to XSS in i18n attribute bindings
CVE-2026-32635 / GHSA-g93w-mfhg-p222
More information
Details
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:
The following attributes have been confirmed to be vulnerable:
actionbackgroundcitecodebasedataformactionhrefitemtypelongdescpostersrcxlink:hrefImpact
When exploited, this vulnerability allows an attacker to execute arbitrary code within the context of the vulnerable application's domain. This enables:
Attack Preconditions
i18n-<name>attribute on the same element.Patches
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:References
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
@angular/compiler: Two-Way Property Binding Sanitization Bypass (XSS)
CVE-2026-54265 / GHSA-58w9-8g37-x9v5
More information
Details
An issue in the
@angular/compilerpackage allows bypassing DOM property sanitization through the use of two-way property bindings.Specifically, when a native DOM property that requires sanitization (such as
innerHTML,srcdoc,src,href,data, orsandbox) is bound using the two-way binding syntax (e.g.,[(innerHTML)]="value"orbindon-innerHTML="value"), the Angular template compiler failed to apply the appropriate schema-derived sanitizer resolution to theTwoWayPropertyoperation. As a result, native two-way DOM bindings were emitted without the required sanitizer function, whereas equivalent one-way bindings would be properly sanitized.This flaw enables an attacker who can control the value of a two-way bound sensitive property to bypass Angular's built-in sanitization logic, potentially leading to client-side Cross-Site Scripting (XSS).
Impact
Any Angular application that uses two-way data binding (
[()]orbindon-) on security-sensitive native DOM properties (likeinnerHTML,hrefon<a>,srcon<img>/<iframe>, etc.) is vulnerable to this security bypass.Once exploited, this allows a malicious actor to supply an unsanitized property binding value that bypasses core sanitization constraints. This could lead to the execution of arbitrary JavaScript within the target user's browser context, potentially resulting in session hijacking, sensitive data exposure, or unauthorized actions on behalf of the user.
Attack Preconditions
To successfully exploit this vulnerability, the following environment parameters and application states must concurrently exist:
<div [(innerHTML)]="userContent"></div>).DomSanitizer) before passing the value to the bound property.Patches
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Angular: Template and Attribute Namespace Sanitization Bypass (XSS)
CVE-2026-50557 / GHSA-f3m7-gqxr-g87x
More information
Details
An issue in the
@angular/compilerand@angular/corepackages allows bypassing element and attribute sanitization/validation through specific namespace workarounds.Specifically, namespaced script elements (e.g.,
<svg:script>or<:svg:script>) were not properly identified as script elements by the Angular template preparser, allowing them to pass through template compilation without being stripped.Furthermore, security context schema mappings for element attributes did not consistently handle attributes within namespaced elements (like SVG and MathML), opening up gaps where malicious namespaced attributes could bypass runtime and compile-time sanitizers.
Combined, these flaws enable an attacker who can inject or supply a template/tag structure with custom namespaces to bypass Angular's script-stripping logic and attribute sanitizers, leading to client-side Cross-Site Scripting (XSS).
Impact
Any Angular application that compiles user-controlled templates at runtime, or relies on sanitization of namespaced elements/attributes, is vulnerable to this security bypass.
Once exploited, this allows a malicious actor to inject a namespaced script element or dynamic attribute bindings, bypassing core sanitization constraints to execute arbitrary JavaScript within the target user's browser context. This could lead to session hijacking, sensitive data exposure, or unauthorized actions on behalf of the user.
Attack Preconditions
To successfully exploit these vulnerabilities, the following environment parameters and application states must all concurrently exist:
<svg:script>) to evade standard tag-name blocklists/checks.Patches
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
angular/angular (@angular/compiler)
v20.3.25Compare Source
Deprecations
platform-server
@angular/platform-serveris deprecated. Use standardfetchAPIs instead.common
compiler
core
http
platform-server
service-worker
v20.3.24Compare Source
platform-server
v20.3.23Compare Source
compiler
v20.3.22Compare Source
common
compiler
core
http
platform-server
service-worker
v20.3.21Compare Source
platform-server
allowedHostsoption torenderModuleandrenderApplicationv20.3.20Compare Source
core
platform-server
v20.3.19Compare Source
platform-server
v20.3.18Compare Source
compiler
core
v20.3.17Compare Source
Breaking Changes
core
Angular now only applies known attributes from HTML in translated ICU content. Unknown attributes are dropped and not rendered.
(cherry picked from commit
03da204)core
v20.3.16Compare Source
core
v20.3.15Compare Source
compiler
attributeNameand MathML/SVG URLsv20.3.14Compare Source
http
v20.3.13Compare Source
v20.3.12Compare Source
v20.3.11Compare Source
common
compiler
core
v20.3.10Compare Source
compiler-cli
migrations
v20.3.9Compare Source
v20.3.7Compare Source
animations
Element.animateexceptions (#64506)compiler
compiler-cli
core
router
v20.3.6Compare Source
core
platform-browser
DomEventsPluginshould always be the last plugin to be called forsupports(). (#50394)v20.3.5Compare Source
compiler-cli
core
animate.leavefunction bindings (#64413)migrations
router
v20.3.4Compare Source
core
| Commit
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.