Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 2, 2025

This PR contains the following updates:

Package Change Age Confidence
@angular/compiler (source) 19.2.819.2.17 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

GitHub Vulnerability Alerts

CVE-2025-66412

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>). The attributeName attribute on these elements was not properly validated, allowing attackers to dynamically target security-sensitive attributes like href or xlink:href on other elements. By binding attributeName to "href" and providing a javascript: URL in the values or to attribute, an attacker could bypass sanitization and execute arbitrary code.

Attributes confirmed to be vulnerable include:

  • SVG-related attributes: (e.g., xlink:href), and various MathML attributes (e.g., math|href, annotation|href).
  • SVG animation attributeName attribute 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 a javascript:URL payload. 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:

  • 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.

Patches

  • 19.2.17
  • 20.3.15
  • 21.0.2

Attack Preconditions

  • The victim's Angular application must render data derived from untrusted input (e.g., from a database or API) and bind it to one of the unsanitized URL attributes or the attributeName of an SVG animation element.
  • The victim must perform a user interaction (e.g., clicking) on the compromised element for the stored script to execute, or the animation must trigger the execution.

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).

  • Avoid Affected Template Bindings: Specifically avoid using template bindings (e.g., [attr.xlink:href]="maliciousURL") to assign untrusted data to the vulnerable SVG/MathML attributes.
  • Avoid Dynamic attributeName on SVG Animations: Do not bind untrusted data to the attributeName attribute of SVG animation elements (<animate>, <set>, etc.).
  • Enable Content Security Policy (CSP): Configure a robust CSP header that disallows javascript: URLs.

Release Notes

angular/angular (@​angular/compiler)

v19.2.17

Compare Source

compiler
Commit Type Description
7c42e2ebeb fix prevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
Commit Type Description
05fe6686a9 fix prevent XSRF token leakage to protocol-relative URLs

v19.2.15

Compare Source

Breaking Changes

core
  • The server-side bootstrapping process has been changed to eliminate the reliance on a global platform injector.

    Before:

    const bootstrap = () => bootstrapApplication(AppComponent, config);

    After:

    const bootstrap = (context: BootstrapContext) =>
      bootstrapApplication(AppComponent, config, context);

    A schematic is provided to automatically update main.server.ts files to pass the BootstrapContext to the bootstrapApplication call.

    In addition, getPlatform() and destroyPlatform() will now return null and be a no-op respectively when running in a server environment.

core
Commit Type Description
70d0639bc1 fix introduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
Commit Type Description
24bab55f0c fix lexer support for template literals in object literals (#​61601)
migrations
Commit Type Description
9e1cd49662 fix preserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
Commit Type Description
2c876b4fc5 fix avoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
Commit Type Description
b15bddfa04 fix do not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
Commit Type Description
126efc9972 fix cancel reader when app is destroyed (#​61528)
efda872453 fix prevent reading chunks if app is destroyed (#​61354)
compiler
Commit Type Description
44bb328eae fix avoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
Commit Type Description
107180260f fix Always retain prior results for all files (#​61487)
1191e62d70 fix avoid ECMAScript private field metadata emit (#​61227)
core
Commit Type Description
2b1b14f4d3 fix cleanup rxResource abort listener (#​58306)
8f9b05eaaa fix cleanup testability subscriptions (#​61261)
eb53bda470 fix enable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6 fix Testing should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abc fix unregister onDestroy in toSignal. (#​61514)
platform-server
Commit Type Description
8edafd0559 perf speed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
Commit Type Description
89056a0356 fix cleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
Commit Type Description
4623b61448 fix missing useExisting providers throwing for optional calls (#​61152)
400dbc5b89 fix properly handle app stabilization with defer blocks (#​61056)
platform-server
Commit Type Description
a6f0d5bc20 fix less aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
Commit Type Description
946b844e0d fix async EventEmitter error should not prevent stability (#​61028)
dbb87026ca fix call DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136a fix prevent stash listener conflicts [patch] (#​61063)

Configuration

📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Dec 2, 2025
github-actions[bot]
github-actions bot previously approved these changes Dec 2, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 5416494 to 0833d19 Compare December 3, 2025 19:30
github-actions[bot]
github-actions bot previously approved these changes Dec 3, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 0833d19 to 9d93913 Compare December 9, 2025 12:15
github-actions[bot]
github-actions bot previously approved these changes Dec 9, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 9d93913 to 2744132 Compare December 9, 2025 13:19
github-actions[bot]
github-actions bot previously approved these changes Dec 9, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 2744132 to 05bf831 Compare December 10, 2025 11:53
github-actions[bot]
github-actions bot previously approved these changes Dec 10, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 05bf831 to 0d0495a Compare December 11, 2025 13:15
github-actions[bot]
github-actions bot previously approved these changes Dec 11, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 0d0495a to 3e940d9 Compare December 12, 2025 09:21
github-actions[bot]
github-actions bot previously approved these changes Dec 12, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 3e940d9 to 6d1c69b Compare December 15, 2025 15:55
github-actions[bot]
github-actions bot previously approved these changes Dec 15, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 6d1c69b to f49d0af Compare December 22, 2025 08:03
github-actions[bot]
github-actions bot previously approved these changes Dec 22, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from f49d0af to 6d5730f Compare December 23, 2025 11:19
@renovate renovate bot requested a review from a team as a code owner December 23, 2025 11:19
@renovate renovate bot changed the base branch from 25_2 to 26_1 December 23, 2025 11:19
github-actions[bot]
github-actions bot previously approved these changes Dec 23, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 6d5730f to 8d95ec3 Compare December 24, 2025 14:45
github-actions[bot]
github-actions bot previously approved these changes Dec 24, 2025
@renovate renovate bot force-pushed the renovate/npm-angular-compiler-vulnerability branch from 8d95ec3 to d33f625 Compare December 30, 2025 15:09
@renovate renovate bot changed the title fix(deps): update dependency @angular/compiler to v19.2.17 [security] chore(deps): update dependency @angular/compiler to v19.2.17 [security] Dec 30, 2025
@renovate renovate bot merged commit b6e8885 into 26_1 Dec 30, 2025
93 checks passed
@renovate renovate bot deleted the renovate/npm-angular-compiler-vulnerability branch December 30, 2025 15:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant