chore(deps): update dependency @angular/compiler to v20.3.28 [security] - #57
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
renovate/npm-angular-compiler-vulnerability
branch
from
July 19, 2026 08:15
00b1436 to
a979dff
Compare
github-actions
Bot
force-pushed
the
renovate/npm-angular-compiler-vulnerability
branch
2 times, most recently
from
August 4, 2026 08:35
3031c1b to
eeeb191
Compare
github-actions
Bot
force-pushed
the
renovate/npm-angular-compiler-vulnerability
branch
from
September 6, 2026 10:17
eeeb191 to
2173d90
Compare
github-actions
Bot
force-pushed
the
renovate/npm-angular-compiler-vulnerability
branch
from
September 11, 2026 10:38
2173d90 to
7b5ecaf
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.3.18→20.3.28Angular: 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 OSV and 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 OSV and the GitHub Advisory Database (CC-BY 4.0).
Angular i18n: Cross-Site Scripting (XSS) via event-handler attributes
CVE-2026-69151 / GHSA-jj27-h5hq-8x99
More information
Details
A Cross-Site Scripting (XSS) vulnerability has been identified in the Angular compiler's internationalization (i18n) pipeline. Although Angular disallows binding to event-handler attributes such as
onclickandonerrorthrough standard attribute validation (validateAttribute()/validateProperty()), the i18n metadata collection path allowed these same attribute names to be marked for translation usingi18n-on*attributes (e.g.,i18n-onerror).When exploited, a lower-trust translation file could replace a benign static handler such as
onerror="void 0"with arbitrary executable JavaScript in the localized build.The following example illustrates a vulnerable pattern:
Impact
When exploited, this vulnerability allows arbitrary JavaScript execution within the context of the vulnerable application's domain if an attacker can control or influence the translation files used during localization. This can lead to:
Patched Versions
Workarounds
Ensure that static event-handler attributes (e.g.,
onerror,onclick) are never marked for internationalization (i18n-on*) in application templates, and ensure translation files are sourced from trusted origins.Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Angular: Sanitization bypass via directive host bindings on concrete host elements in @angular/core and @angular/compiler
CVE-2026-88057 / GHSA-hh8m-fm6v-7cvg
More information
Details
Angular automatically sanitizes untrusted values bound to security-sensitive DOM sinks (such as
href,src,action,xlink:href, anddata) to protect against Cross-Site Scripting (XSS).Prior to the fix, the Angular compiler determined the
SecurityContextfor directive host bindings (host: {'[attr.href]': 'value'}or@HostBinding('attr.href')) based solely on the declaring directive or component selector at compile time, rather than the concrete host element that the directive was applied to.When a directive with a security-sensitive host binding was applied to a different concrete host element—such as through:
hostDirectivescomposition,createComponentwith customhostElementor dynamic directives),<svg:a>,<math>), or:not(...)),the compiler either failed to associate a sanitizer with the host binding or attached an incorrect security context. As a result, untrusted inputs (e.g.
javascript:...URLs) bound via the host binding would be written to the DOM attribute without passing through Angular's built-in sanitizer.Impact
An attacker capable of controlling the value bound to an affected directive host binding could execute arbitrary JavaScript in the user's browser context (Cross-Site Scripting).
Patches
This issue has been resolved in versions:
22.1.021.2.2020.3.28Workarounds
Ensure that any user-controlled values assigned to properties bound via directive host bindings are explicitly sanitized using
DomSanitizer.sanitize(SecurityContext.URL, ...)before assignment, or restrict the input to validated safe URL schemes (e.g.http://,https://).Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
angular/angular (@angular/compiler)
v20.3.28Compare Source
core
http
v20.3.27Compare Source
compiler
http
platform-server
v20.3.26Compare Source
compiler-cli
core
http
service-worker
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
Configuration
📅 Schedule: Branch creation - "" in timezone UTC, Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.