Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Update dependency @angular/common to v19.2.23 [SECURITY] by renovate[bot] · Pull Request #764 · esm-bundle/angular__common · GitHub
Skip to content

Update dependency @angular/common to v19.2.23 [SECURITY] - #764

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability
Open

Update dependency @angular/common to v19.2.23 [SECURITY]#764
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/npm-angular-common-vulnerability

Conversation

@renovate

@renovaterenovateBot commented Nov 27, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

PackageChangeAgeConfidence
@angular/common (source)19.1.719.2.23ageconfidence

Angular is Vulnerable to XSRF Token Leakage via Protocol-Relative URLs in Angular HTTP Client

CVE-2025-66035 / GHSA-58c5-g7wp-6w37

More information

Details

The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.

Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (http:// or https://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to the X-XSRF-TOKEN header.

Impact

The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.

Attack Preconditions
  1. The victim's Angular application must have XSRF protection enabled.
  2. The attacker must be able to make the application send a state-changing HTTP request (e.g., POST) to a protocol-relative URL (e.g., //attacker.com) that they control.
Patches
  • 19.2.16
  • 20.3.14
  • 21.0.1
Workarounds

Developers should avoid using protocol-relative URLs (URLs starting with //) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single /) or fully qualified, trusted absolute URLs.

Severity

  • CVSS Score: 7.7 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Information Leak via Default Caching of Credentialed Requests in HttpTransferCache

CVE-2026-50170 / GHSA-q6f4-qqrg-jv6x

More information

Details

A vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. The HttpTransferCache utility optimizes hydration by caching outgoing HTTP requests performed during SSR and transferring the cached state to the client-side application via TransferState.

However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability.

Impact

Successful exploitation allows an unauthenticated attacker to obtain sensitive, user-specific information of other authenticated users. This occurs when:

  • The SSR-rendered HTML containing the cached private data is stored in a shared cache (e.g., CDN, reverse proxy).
  • Subsequent requests for the same page receive the cached HTML containing the first user's private data.
Attack Preconditions
  • SSR and Hydration Enabled: The Angular application must be configured to use Server-Side Rendering and hydration (e.g., using provideClientHydration()).
  • Credentialed Requests during SSR: The application must perform HTTP requests that require user-specific authentication (using cookies or withCredentials: true) during the initial server-side render.
  • Shared Caching: The application's HTML responses must be cached by a shared caching layer (CDN, reverse proxy, or server-side cache) without proper cache-control headers to distinguish authenticated users.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


@​angular/common: Denial of Service (DoS) via OOM in Number Formatting (digitsInfo)

CVE-2026-50171 / GHSA-p3vc-36g9-x9gr

More information

Details

A Denial of Service (DoS) vulnerability exists in the @angular/common package of Angular. The formatNumber function, which is also utilized by DecimalPipe, PercentPipe, and CurrencyPipe, does not properly validate the upper bounds of the digitsInfo parameter. Specifically, the minimum and maximum fraction digits parsed from the digitsInfo string (e.g., 1.2-4) are converted to integers and used without limits.

When parsing a maliciously crafted digitsInfo string with excessively large fraction digit values (e.g., 1.200000000-200000000), the internal roundNumber function attempts to pad the digits array to match the requested fraction size. This results in an unbounded loop that repeatedly pushes elements into an array.

Impact

Successful exploitation of this vulnerability allows an attacker to trigger resource exhaustion, leading to a Denial of Service (DoS):

  • Server-Side Rendering (SSR): In applications using SSR (e.g., @angular/ssr), an attacker can crash the Node.js server process due to a JavaScript heap out of memory error. This affects the availability of the application for all users.
  • Client-Side Rendering (CSR): In standard client-side applications, the unbounded loop will block the main thread, freezing the user's browser tab and making it unresponsive.
Attack Preconditions

For this vulnerability to be exploitable, the following conditions must be met:

  1. Vulnerable Component Usage: The application must use Angular's number formatting utilities, such as the formatNumber function directly, or via template pipes (DecimalPipe, PercentPipe, CurrencyPipe).
  2. Attacker-Controlled Parameter: The digitsInfo parameter passed to these utilities must be customizable or directly controlled by untrusted user input (e.g., parsed from query parameters, user preference settings, or API responses that accept user-defined formatting options). If digitsInfo is trusted or limited to a known, defined range for its value, the vulnerability is not exploitable by external attackers.
Patches
  • 22.0.0-rc.2
  • 21.2.15
  • 20.3.22
  • 19.2.23
Credits

This vulnerability was discovered and reported by CodeMender from Google DeepMind.

Severity

  • CVSS Score: 8.2 / 10 (High)
  • Vector String: CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Release Notes

angular/angular (@​angular/common)

v19.2.23

Compare Source

common
CommitTypeDescription
62dd27d6affixadd upper bounds for digitsInfo
17326725bafixsanitize placeholder
compiler
CommitTypeDescription
932e0728dbfixnormalize tag names with custom namespaces in DomElementSchemaRegistry
2e3d0371abfixsanitize dynamic href and xlink:href bindings on SVG a elements
fe1207e8c5fixstrip namespaced SVG script elements during template compilation
core
CommitTypeDescription
c6bb0692e2fixreject script element as a dynamic component host
3960b21558fixsanitize meta selectors
3632fa4b69fixsupport prefix-insensitive DOM schema lookups and compile-time i18n attribute validation
620230dac4fixsynchronize core sanitization schema with compiler
d31f84116cfixwrap i18n dynamic element property updates in active index states
http
CommitTypeDescription
9940ffd781fixexclude withCredentials requests from transfer cache
0f67f0b962fixskip TransferCache for cookie-bearing requests by default
platform-server
CommitTypeDescription
d187e8aedafixnormalize path parsing in ServerPlatformLocation
c75f60ef8afixsecure location and document initialization against SSRF and path hijack
service-worker
CommitTypeDescription
37ee9ffd9efixpreserve redirect policy on reconstructed asset requests
97f796203ffixPreserves explicit 'credentials: omit' in asset requests
5619120931fixPreserves HTTP cache mode in asset group requests

v19.2.22

Compare Source

core
CommitTypeDescription
83a640516ffixdisallow event attribute bindings in host bindings unconditionally (#​68469)
24a0103a98fixvalidate security-sensitive attributes in i18n bindings (#​68469)
platform-server
CommitTypeDescription
8569db8875fixadd allowedHosts option to renderModule and renderApplication
837a710217fixensure origin has a trailing slash when parsing url (#​68469)

v19.2.21

Compare Source

platform-server
CommitTypeDescription
f3a5bfb949fixprevent SSRF bypasses via protocol-relative and backslash URLs

v19.2.20

Compare Source

compiler
CommitTypeDescription
5be912eb55fixdisallow translations of iframe src
core
CommitTypeDescription
b89b0a83a4fixsanitize translated attribute bindings with interpolations
621c7071adfixsanitize translated form attributes

v19.2.19

Compare 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
CommitTypeDescription
747548721dfixblock creation of sensitive URI attributes from ICU messages

v19.2.18

Compare Source

core
CommitTypeDescription
26cdc53d9cfixsanitize sensitive attributes on SVG script elements

v19.2.17

Compare Source

compiler
CommitTypeDescription
7c42e2ebebfixprevent XSS via SVG animation attributeName and MathML/SVG URLs

v19.2.16

Compare Source

http
CommitTypeDescription
05fe6686a9fixprevent 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:

    constbootstrap=()=>bootstrapApplication(AppComponent,config);

    After:

    constbootstrap=(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
CommitTypeDescription
70d0639bc1fixintroduce BootstrapContext for improved server bootstrapping (#​63639)

v19.2.14

Compare Source

compiler
CommitTypeDescription
24bab55f0cfixlexer support for template literals in object literals (#​61601)
migrations
CommitTypeDescription
9e1cd49662fixpreserve comments when removing unused imports (#​61674)

v19.2.13

Compare Source

common
CommitTypeDescription
2c876b4fc5fixavoid injecting ApplicationRef in FetchBackend (#​61649)
service-worker
CommitTypeDescription
b15bddfa04fixdo not register service worker if app is destroyed before it is ready to register (#​61101)

v19.2.12

Compare Source

common
CommitTypeDescription
126efc9972fixcancel reader when app is destroyed (#​61528)
efda872453fixprevent reading chunks if app is destroyed (#​61354)
compiler
CommitTypeDescription
44bb328eaefixavoid conflicts between HMR code and local symbols (#​61550)
compiler-cli
CommitTypeDescription
107180260ffixAlways retain prior results for all files (#​61487)
1191e62d70fixavoid ECMAScript private field metadata emit (#​61227)
core
CommitTypeDescription
2b1b14f4d3fixcleanup rxResource abort listener (#​58306)
8f9b05eaaafixcleanup testability subscriptions (#​61261)
eb53bda470fixenable stashing only when withEventReplay() is invoked (#​61352)
94f5a4b4d6fixTesting should not throw when Zone does not patch test FW APIs (#​61376)
c0c69a5abcfixunregister onDestroy in toSignal. (#​61514)
platform-server
CommitTypeDescription
8edafd0559perfspeed up resolution of base (#​61392)

v19.2.11

Compare Source

v19.2.10

Compare Source

common
CommitTypeDescription
89056a0356fixcleanup updateLatestValue if view is destroyed before promise resolves (#​61064)
core
CommitTypeDescription
4623b61448fixmissing useExisting providers throwing for optional calls (#​61152)
400dbc5b89fixproperly handle app stabilization with defer blocks (#​61056)
platform-server
CommitTypeDescription
a6f0d5bc20fixless aggressive ngServerMode cleanup (#​61106)

v19.2.9

Compare Source

core
CommitTypeDescription
946b844e0dfixasync EventEmitter error should not prevent stability (#​61028)
dbb87026cafixcall DestroyRef on destroy callback if view is destroyed [patch] (#​61061)
2e140a136afixprevent stash listener conflicts [patch] (#​61063)

v19.2.8

Compare Source

forms
CommitTypeDescription
ea4a211216fixmake NgForm emit FormSubmittedEvent and FormResetEvent (#​60887)

v19.2.7

Compare Source

common
CommitTypeDescription
37ab6814f5fixissue a warning instead of an error when NgOptimizedImage exceeds the preload limit (#​60883)
core
CommitTypeDescription
b144126612fixinject migration: replace param with this. (#​60713)
http
CommitTypeDescription
d39e09da41fixInclude HTTP status code and headers when HTTP requests errored in httpResource (#​60802)

v19.2.6

Compare Source

compiler
CommitTypeDescription
3441f7b914fixerror if rawText isn't estimated correctly (#​60529) (#​60753)
compiler-cli
CommitTypeDescription
fc946c5f72fixensure HMR works with different output module type (#​60797)
core
CommitTypeDescription
00bbd9b382fixfix docs for output migration (#​60764)
f2bfa3151efixfix ng generate @​angular/core:output-migration. Fixes angular#​58650 (#​60763)
9241615ad0fixreduce total memory usage of various migration schematics (#​60776)
language-service
CommitTypeDescription
0e82d42774fixDo not provide element completions in end tag (#​60616)
fcdef1019ffixEnsure dollar signs are escaped in completions (#​60597)

v19.2.5

Compare Source

CommitTypeDescription
e61d06afb5fixstep 6 tutorial docs (#​60630)
animations
CommitTypeDescription
fa48f98d9ffixadd missing peer dependency on @angular/common (#​60660)
compiler
CommitTypeDescription
ca5aa4d55bfixthrow for invalid "as" expression in if block (#​60580)
compiler-cli
CommitTypeDescription
f4c4b10ea8fixProduce fatal diagnostic on duplicate decorated properties (#​60376)
22a0e54ac4fixsupport relative imports to symbols outside rootDir (#​60555)
core
CommitTypeDescription
64da69f7b6fixcheck ngDevMode for undefined (#​60565)
8f68d1bec3fixfix ng generate @​angular/core:output-migration (#​60626)
bc79985c65fixfix regexp for event types (#​60592)
006ac7f22ffixfixes #​592882 ng generate @​angular/core:signal-queries-migration (#​60688)
da6e93f434fixpreserve comments in internal inject migration (#​60588)
dbbddd1617fixprevent omission of deferred pipes in full compilation (#​60571)
language-service
CommitTypeDescription
0e9e0348ddfixUpdate adapter to log instead of throw errors (#​60651)
migrations
CommitTypeDescription
15f53f035bfixhandle shorthand assignments in super call (#​60602)
4b161e6234fixinject migration not handling super parameter referenced via this (#​60602)
router
CommitTypeDescription
958e98e4f7fixAdd missing types to transition (#​60307)
service-worker
CommitTypeDescription
7cd89ad2c6fixassign initializing client's app version, when a request is for worker script (#​58131)

v19.2.4

Compare Source

core
CommitTypeDescription
081f5f5a83ffixfix used templates are not deleted (#​60459)
localize
CommitTypeDescription
a2f622d82d6fixhandle [@​angular/build](

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • 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.


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

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

@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedMar 27, 2026
@renovaterenovateBot closed this Mar 27, 2026
@renovate
renovateBot deleted the renovate/npm-angular-common-vulnerability branch March 27, 2026 02:13
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Mar 30, 2026
@renovaterenovateBot reopened this Mar 30, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch 2 times, most recently from 71e96db to bfbe2d4CompareMarch 30, 2026 17:56
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedApr 27, 2026
@renovaterenovateBot closed this Apr 27, 2026
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY] - autoclosedUpdate dependency @angular/common to v19.2.16 [SECURITY]Apr 27, 2026
@renovaterenovateBot reopened this Apr 27, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from bfbe2d4 to b983f41CompareApril 27, 2026 22:27
@renovaterenovateBot changed the title Update dependency @angular/common to v19.2.16 [SECURITY]Update dependency @angular/common to v19.2.23 [SECURITY]Jun 15, 2026
@renovate
renovateBotforce-pushed the renovate/npm-angular-common-vulnerability branch from b983f41 to 6940e14CompareJune 15, 2026 22:15
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants