chore(deps): update dependency @angular/core to v19 [security] #1111
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:
14.3.0→19.0.0Angular 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 OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
angular/angular (@angular/core)
v19.0.0Compare Source
Blog post: https://blog.angular.dev/meet-angular-v19-7b29dfd05b84
Breaking Changes
compiler
this.fooproperty reads no longer refer to template context variables. If you intended to read the template variable, do not usethis..:where()and:is(),parsing of
:hostandhost-context, parsing selectors within pseudo selector arguments (for instance comma separated selectors).These changes could lead to a different specificity of the resulting selectors and/or previously broken selectors being applied now,
for example
:where(:host)used to transform to:where()[ng-host]and is being:where([ng-host])now. Unlike the previous outcome,the new result can target elements and therefore could lead to breakages.
core
Angular directives, components and pipes are now standalone by default.
standalone: falsefor declarations that are currently declared in@NgModules.ng updatefor v19 will take care of this automatically.TypeScript versions less than 5.5 are no longer supported.
Timing changes for
effectAPI (in developer preview):effects which are triggered outside of change detection run as part of
the change detection process instead of as a microtask. Depending on the
specifics of application/test setup, this can result in them executing
earlier or later (or requiring additional test steps to trigger; see below
examples).
effects which are triggered during change detection (e.g. by input
signals) run earlier, before the component's template.
ExperimentalPendingTaskshas been renamed toPendingTasks.The
autoDetectfeature ofComponentFixturewill nowattach the fixture to the
ApplicationRef. As a result, errors duringautomatic change detection of the fixture be reported to the
ErrorHandler.This change may cause custom error handlers to observe new failures that were previously unreported.
createComponentwill now render default fallback with emptyprojectableNodes.projectableNodesin thecreateComponentAPI, the default fallback contentof the
ng-contentwill be rendered if present. To prevent rendering the default content, passdocument.createTextNode('')as aprojectableNode.Errors that are thrown during
ApplicationRef.tickwill now be rethrown when using
TestBed. These errors should beresolved by ensuring the test environment is set up correctly to
complete change detection successfully. There are two alternatives to
catch the errors:
it synchronously and expect the error. For example, a jasmine test
could write
expect(() => TestBed.inject(ApplicationRef).tick()).toThrow()TestBedwill reject any outstandingComponentFixture.whenStablepromises. A jasmine test,for example, could write
expectAsync(fixture.whenStable()).toBeRejected().As a last resort, you can configure errors to not be rethrown by
setting
rethrowApplicationErrorstofalseinTestBed.configureTestingModule.The timers that are used for zone coalescing and hybrid
mode scheduling (which schedules an application state synchronization
when changes happen outside the Angular zone) will now run in the zone
above Angular rather than the root zone. This will mostly affect tests
which use
fakeAsync: these timers will now be visible tofakeAsyncand can be affected by
tickorflush.The deprecated
factoriesproperty inKeyValueDiffershas been removed.elements
hybrid scheduler, timing of change detection around custom elements has
changed subtly. These changes make elements more efficient, but can cause
tests which encoded assumptions about how or when elements would be checked
to require updating.
localize
nameoption in theng add@localize``schematic has been removed in favor of theprojectoption.platform-browser
BrowserModule.withServerTransitionmethod has been removed. Please use theAPP_IDDI token to set the application id instead.router
Router.errorHandlerproperty has been removed.Adding an error handler should be configured in either
withNavigationErrorHandlerwithprovideRouteror theerrorHandlerproperty in the extra options of
RouterModule.forRoot. In addition,the error handler cannot be used to change the return value of the
router navigation promise or prevent it from rejecting. Instead, if you
want to prevent the promise from rejecting, use
resolveNavigationPromiseOnError.Resolveinterface now includesRedirectCommand.common
compiler
typeofkeyword in template expressions. (#58183)this.ashould always refer to class propertya(#55183):hostparsing in pseudo-selectors (#58681):host:host-context(.foo)(#58681)compiler-cli
core
standalone: false. (#57643)runmethod onExperimentalPendingTasks(#56546)undefinedwithout needing to include it in the type argument ofinput(#57621)allowSignalWrites(#57874)resource()API for async dependencies (#58255)rxResource()(#58255)standalonetotrue(#58169)afterRenderEffect(#57549)outputFromObservable&outputToObservableto stable. (#58214)takeUntilDestroyedto stable. (#58200)@letsyntax (#57813)ViewContextis retained after closure minification (#57903)Nonefor empty component styles (#57130)factoriesProperty inKeyValueDiffers(#58064)elements
output()-shaped outputs (#57535)ComponentRef.setInput& remove custom scheduler (#56728)forms
http
withRequestsMadeViaParentto stable. (#58221)language-service
@Inputto signal-input (#57214)localize
nameoption. (#58063)migrations
ng generateschematic (#57805)platform-browser
BrowserModule.withServerTransitionmethod (#58062)platform-server
PlatformRefwhen error happens during thebootstrap()phase (#58112)router
routerOutletDatainput toRouterOutletdirective (#57051)injectoronOutletContext(#58343)service-worker
v18.2.14Compare Source
Breaking Changes
core
The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.
Before:
After:
A schematic is provided to automatically update
main.server.tsfiles to pass theBootstrapContextto thebootstrapApplicationcall.In addition,
getPlatform()anddestroyPlatform()will now returnnulland be a no-op respectively when running in a server environment.(cherry picked from commit
8bf80c9)core
BootstrapContextfor improved server bootstrapping (#63640)v18.2.13Compare Source
migrations
v18.2.12Compare Source
compiler-cli
v18.2.11Compare Source
core
v18.2.10Compare Source
compiler
localize
v18.2.9Compare Source
compiler-cli
v18.2.8Compare Source
compiler
compiler-cli
core
platform-server
PlatformRefwhen error happens during thebootstrap()phase (#58112) (#58135)v18.2.7Compare Source
common
compiler-cli
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 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 has been generated by Renovate Bot.