This is an automated email from the ASF dual-hosted git repository.

github-merge-queue[bot] pushed a commit to branch 
gh-readonly-queue/main/pr-8492-577bc408d66802f9ad8905458728ed1526068ca5
in repository https://gitbox.apache.org/repos/asf/texera.git

commit 02efe7ac037c037eeca1922cd1e944b89f274816
Author: Mend Renovate <[email protected]>
AuthorDate: Thu Sep 24 03:22:02 2026 +0000

    fix(deps, frontend): update dependency @angular/common to v21.2.20 (#8492)
    
    This PR contains the following updates:
    
    | Package | Change |
    [Age](https://docs.renovatebot.com/merge-confidence/) |
    [Confidence](https://docs.renovatebot.com/merge-confidence/) |
    |---|---|---|---|
    | [@angular/common](https://redirect.github.com/angular/angular)
    
([source](https://redirect.github.com/angular/angular/tree/HEAD/packages/common))
    | [`21.2.19` →
    
`21.2.20`](https://renovatebot.com/diffs/npm/@angular%2fcommon/21.2.19/21.2.20)
    |
    
![age](https://developer.mend.io/api/mc/badges/age/npm/@angular%2fcommon/21.2.20?slim=true)
    |
    
![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@angular%2fcommon/21.2.19/21.2.20?slim=true)
    |
    
    ---
    
    ### Angular: Information Leak via `HttpTransferCache` Bypass When Using
    `withRequestsMadeViaParent`
    [CVE-2026-88059](https://nvd.nist.gov/vuln/detail/CVE-2026-88059) /
    
[GHSA-p297-fm68-3q8c](https://redirect.github.com/advisories/GHSA-p297-fm68-3q8c)
    
    <details>
    <summary>More information</summary>
    
    #### Details
    A security bypass vulnerability was discovered in `@angular/common` when
    Server-Side Rendering (SSR) and hydration are enabled in applications
    using a hierarchical `HttpClient` configuration with
    `withRequestsMadeViaParent()`.
    
    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` (serialized as JSON in
    `<script id="ng-state">`). Following the remediation of
    
[CVE-2026-50170](https://redirect.github.com/angular/angular/security/advisories/GHSA-q6f4-qqrg-jv6x),
    `HttpTransferCache` automatically skips caching requests that contain
    authentication headers or credentials (`Authorization`, `Cookie`,
    `withCredentials`, etc.).
    
    However, when a child `HttpClient` delegates to a parent client via
    `withRequestsMadeViaParent()`, the child's `TransferCache` interceptor
    evaluates whether the request is eligible for caching **before**
    delegating to the parent client's interceptor chain.
    
    If an outgoing request originates as anonymous from the child client,
    the child `TransferCache` marks the request as cacheable. When the
    request reaches a parent interceptor that injects sensitive
    authentication credentials (such as an `Authorization` header or API
    token), the parent `TransferCache` correctly skips caching the
    authenticated request. However, when the backend returns the private,
    authenticated response, the child `TransferCache` still stores the
    response in `TransferState` based on its initial pre-delegation
    evaluation.
    
    ##### Impact
    
    Successful exploitation allows sensitive, user-specific information
    belonging to an authenticated user to be leaked to unauthenticated or
    unauthorized users. This occurs when:
    
    1. During SSR, a child `HttpClient` initiates an unauthenticated request
    that is subsequently authenticated by a parent interceptor.
    2. The authenticated response body is cached into the SSR-rendered HTML
    page (`TransferState`).
    3. The rendered HTML page is stored by a shared caching layer (e.g.,
    CDN, edge cache, or reverse proxy) or served across user sessions.
    4. Subsequent visitors requesting the same page receive the cached HTML
    containing the previous user's private data.
    
    ##### Attack Preconditions & Vulnerable Configurations
    
    An application is affected only if **all** of the following conditions
    are met:
    
    * **SSR and Hydration Enabled:** The application uses Server-Side
    Rendering with hydration enabled (e.g., via `provideClientHydration()`).
    * **Hierarchical `HttpClient` with Delegation:** The application
    configures a child `HttpClient` using `withRequestsMadeViaParent()`.
    * **Parent-Level Authentication Injection:** Authentication credentials
    (such as `Authorization` headers, session cookies, or custom API tokens
    filtered via `withHttpTransferCacheOptions`) are attached by an
    interceptor in the **parent** injector chain rather than on the initial
    child request.
    * **Shared HTML Caching:** The SSR HTML responses are cached by a shared
    caching layer (CDN, reverse proxy, or application-level HTML cache).
    
    ##### Vulnerable Code Pattern Example
    
    ```ts
    // Parent Injector / Application Config
    export const appConfig: ApplicationConfig = {
      providers: [
        provideHttpClient(
          // Parent interceptor attaches sensitive Authorization header
          withInterceptors([
            (req, next) => next(req.clone({ setHeaders: { Authorization: 
`Bearer ${getToken()}` } }))
          ])
        ),
      ],
    };
    
    // Child Injector / Feature or Component Config
    const childClient = createEnvironmentInjector(
      [
        // Child delegates to parent; TransferCache evaluates req BEFORE parent 
auth interceptor runs
        provideHttpClient(withRequestsMadeViaParent()),
      ],
      parentInjector
    ).get(HttpClient);
    
    // Request originates without auth headers -> marked cacheable by child 
TransferCache
    childClient.get('/api/user/profile').subscribe();
    ```
    
    ##### Patches
    
    The issue is resolved by updating `@angular/common` to run root
    interceptors in the terminal request chain so that delegated clients
    leave inherited root interceptors to the parent chain, preventing
    duplicate execution and ensuring `HttpTransferCache` evaluates cache
    eligibility after parent request interceptors run.
    
    * `22.1.1`
    * `21.2.20`
    * `20.3.28`
    
    ##### Workarounds & Mitigations
    
    For applications that cannot immediately upgrade to a patched version,
    use one of the following mitigations:
    
    1. **Attach Credentials Before or Within the Child Client:** Ensure
    authentication headers (e.g., `Authorization`) are attached directly
    when constructing the request or via an interceptor configured directly
    on the child `HttpClient`, rather than relying solely on parent
    interceptors.
    2. **Apply Explicit Cache Filters on the Child Client:** Configure
    `withHttpTransferCacheOptions` with a filter on the child client that
    explicitly excludes endpoints returning user-specific or sensitive data:
       ```ts
       provideClientHydration(
         withHttpTransferCacheOptions({
           filter: (req) => !req.url.includes('/api/private/'),
         })
       )
       ```
    3. **Disable HTTP Transfer Cache for Sensitive Routes:** If specific SSR
    routes handle user-authenticated data, disable transfer caching for
    those requests or ensure the SSR response sets `Cache-Control: no-store`
    / `private` headers at your edge/CDN layer so personalized HTML is never
    shared.
    
    #### Severity
    - CVSS Score: 4.0 / 10 (Medium)
    - Vector String: `CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N`
    
    #### References
    -
    
[https://github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c](https://redirect.github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c)
    -
    
[https://github.com/angular/angular/issues/69777](https://redirect.github.com/angular/angular/issues/69777)
    -
    
[https://github.com/angular/angular/pull/69778](https://redirect.github.com/angular/angular/pull/69778)
    -
    
[https://github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af](https://redirect.github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af)
    -
    
[https://github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d](https://redirect.github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d)
    -
    
[https://github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56](https://redirect.github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56)
    -
    
[https://github.com/angular/angular/releases/tag/v20.3.28](https://redirect.github.com/angular/angular/releases/tag/v20.3.28)
    -
    
[https://github.com/angular/angular/releases/tag/v21.2.20](https://redirect.github.com/angular/angular/releases/tag/v21.2.20)
    -
    
[https://github.com/angular/angular/releases/tag/v22.1.1](https://redirect.github.com/angular/angular/releases/tag/v22.1.1)
    -
    
[https://github.com/advisories/GHSA-p297-fm68-3q8c](https://redirect.github.com/advisories/GHSA-p297-fm68-3q8c)
    
    This data is provided by the [GitHub Advisory
    Database](https://redirect.github.com/advisories/GHSA-p297-fm68-3q8c)
    ([CC-BY
    
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
    </details>
    
    ---
    
    ### Angular: Information Leak via `HttpTransferCache` Bypass When Using
    `withRequestsMadeViaParent`
    [CVE-2026-88059](https://nvd.nist.gov/vuln/detail/CVE-2026-88059) /
    
[GHSA-p297-fm68-3q8c](https://redirect.github.com/advisories/GHSA-p297-fm68-3q8c)
    
    <details>
    <summary>More information</summary>
    
    #### Details
    A security bypass vulnerability was discovered in `@angular/common` when
    Server-Side Rendering (SSR) and hydration are enabled in applications
    using a hierarchical `HttpClient` configuration with
    `withRequestsMadeViaParent()`.
    
    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` (serialized as JSON in
    `<script id="ng-state">`). Following the remediation of
    
[CVE-2026-50170](https://redirect.github.com/angular/angular/security/advisories/GHSA-q6f4-qqrg-jv6x),
    `HttpTransferCache` automatically skips caching requests that contain
    authentication headers or credentials (`Authorization`, `Cookie`,
    `withCredentials`, etc.).
    
    However, when a child `HttpClient` delegates to a parent client via
    `withRequestsMadeViaParent()`, the child's `TransferCache` interceptor
    evaluates whether the request is eligible for caching **before**
    delegating to the parent client's interceptor chain.
    
    If an outgoing request originates as anonymous from the child client,
    the child `TransferCache` marks the request as cacheable. When the
    request reaches a parent interceptor that injects sensitive
    authentication credentials (such as an `Authorization` header or API
    token), the parent `TransferCache` correctly skips caching the
    authenticated request. However, when the backend returns the private,
    authenticated response, the child `TransferCache` still stores the
    response in `TransferState` based on its initial pre-delegation
    evaluation.
    
    ##### Impact
    
    Successful exploitation allows sensitive, user-specific information
    belonging to an authenticated user to be leaked to unauthenticated or
    unauthorized users. This occurs when:
    
    1. During SSR, a child `HttpClient` initiates an unauthenticated request
    that is subsequently authenticated by a parent interceptor.
    2. The authenticated response body is cached into the SSR-rendered HTML
    page (`TransferState`).
    3. The rendered HTML page is stored by a shared caching layer (e.g.,
    CDN, edge cache, or reverse proxy) or served across user sessions.
    4. Subsequent visitors requesting the same page receive the cached HTML
    containing the previous user's private data.
    
    ##### Attack Preconditions & Vulnerable Configurations
    
    An application is affected only if **all** of the following conditions
    are met:
    
    * **SSR and Hydration Enabled:** The application uses Server-Side
    Rendering with hydration enabled (e.g., via `provideClientHydration()`).
    * **Hierarchical `HttpClient` with Delegation:** The application
    configures a child `HttpClient` using `withRequestsMadeViaParent()`.
    * **Parent-Level Authentication Injection:** Authentication credentials
    (such as `Authorization` headers, session cookies, or custom API tokens
    filtered via `withHttpTransferCacheOptions`) are attached by an
    interceptor in the **parent** injector chain rather than on the initial
    child request.
    * **Shared HTML Caching:** The SSR HTML responses are cached by a shared
    caching layer (CDN, reverse proxy, or application-level HTML cache).
    
    ##### Vulnerable Code Pattern Example
    
    ```ts
    // Parent Injector / Application Config
    export const appConfig: ApplicationConfig = {
      providers: [
        provideHttpClient(
          // Parent interceptor attaches sensitive Authorization header
          withInterceptors([
            (req, next) => next(req.clone({ setHeaders: { Authorization: 
`Bearer ${getToken()}` } }))
          ])
        ),
      ],
    };
    
    // Child Injector / Feature or Component Config
    const childClient = createEnvironmentInjector(
      [
        // Child delegates to parent; TransferCache evaluates req BEFORE parent 
auth interceptor runs
        provideHttpClient(withRequestsMadeViaParent()),
      ],
      parentInjector
    ).get(HttpClient);
    
    // Request originates without auth headers -> marked cacheable by child 
TransferCache
    childClient.get('/api/user/profile').subscribe();
    ```
    
    ##### Patches
    
    The issue is resolved by updating `@angular/common` to run root
    interceptors in the terminal request chain so that delegated clients
    leave inherited root interceptors to the parent chain, preventing
    duplicate execution and ensuring `HttpTransferCache` evaluates cache
    eligibility after parent request interceptors run.
    
    * `22.1.1`
    * `21.2.20`
    * `20.3.28`
    
    ##### Workarounds & Mitigations
    
    For applications that cannot immediately upgrade to a patched version,
    use one of the following mitigations:
    
    1. **Attach Credentials Before or Within the Child Client:** Ensure
    authentication headers (e.g., `Authorization`) are attached directly
    when constructing the request or via an interceptor configured directly
    on the child `HttpClient`, rather than relying solely on parent
    interceptors.
    2. **Apply Explicit Cache Filters on the Child Client:** Configure
    `withHttpTransferCacheOptions` with a filter on the child client that
    explicitly excludes endpoints returning user-specific or sensitive data:
       ```ts
       provideClientHydration(
         withHttpTransferCacheOptions({
           filter: (req) => !req.url.includes('/api/private/'),
         })
       )
       ```
    3. **Disable HTTP Transfer Cache for Sensitive Routes:** If specific SSR
    routes handle user-authenticated data, disable transfer caching for
    those requests or ensure the SSR response sets `Cache-Control: no-store`
    / `private` headers at your edge/CDN layer so personalized HTML is never
    shared.
    
    #### Severity
    - CVSS Score: 4.0 / 10 (Medium)
    - Vector String: `CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:L/I:N/A:N`
    
    #### References
    -
    
[https://github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c](https://redirect.github.com/angular/angular/security/advisories/GHSA-p297-fm68-3q8c)
    -
    
[https://github.com/angular/angular/issues/69777](https://redirect.github.com/angular/angular/issues/69777)
    -
    
[https://github.com/angular/angular/pull/69778](https://redirect.github.com/angular/angular/pull/69778)
    -
    
[https://github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af](https://redirect.github.com/angular/angular/commit/c45028e44f5f3c1e0006eaccf86642deca51b2af)
    -
    
[https://github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d](https://redirect.github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d)
    -
    
[https://github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56](https://redirect.github.com/angular/angular/commit/e4c416c20a1cb222ce73d29c035452b257380c56)
    -
    
[https://github.com/angular/angular](https://redirect.github.com/angular/angular)
    -
    
[https://github.com/angular/angular/releases/tag/v20.3.28](https://redirect.github.com/angular/angular/releases/tag/v20.3.28)
    -
    
[https://github.com/angular/angular/releases/tag/v21.2.20](https://redirect.github.com/angular/angular/releases/tag/v21.2.20)
    -
    
[https://github.com/angular/angular/releases/tag/v22.1.1](https://redirect.github.com/angular/angular/releases/tag/v22.1.1)
    
    This data is provided by
    [OSV](https://osv.dev/vulnerability/GHSA-p297-fm68-3q8c) and the [GitHub
    Advisory Database](https://redirect.github.com/github/advisory-database)
    ([CC-BY
    
4.0](https://redirect.github.com/github/advisory-database/blob/main/LICENSE.md)).
    </details>
    
    ---
    
    ### Release Notes
    
    <details>
    <summary>angular/angular (@&#8203;angular/common)</summary>
    
    ###
    
[`v21.2.20`](https://redirect.github.com/angular/angular/blob/HEAD/CHANGELOG.md#21220-2026-08-12)
    
    [Compare
    
Source](https://redirect.github.com/angular/angular/compare/v21.2.19...v21.2.20)
    
    ##### core
    
    | Commit | Type | Description |
    |
    
------------------------------------------------------------------------------------------------
    | ---- | ---------------------------------------- |
    |
    
[6afe6fa781](https://redirect.github.com/angular/angular/commit/6afe6fa781c2f0931f0aedd729b9884a8fe212ee)
    | fix | sanitize host bindings on concrete hosts |
    
    ##### http
    
    | Commit | Type | Description |
    |
    
------------------------------------------------------------------------------------------------
    | ---- | --------------------------------------------------- |
    |
    
[fec5977df4](https://redirect.github.com/angular/angular/commit/fec5977df4dda3a10d5ce2923e3e06d86ba11ee7)
    | fix | match header values exactly when deleting |
    |
    
[e33d69a71c](https://redirect.github.com/angular/angular/commit/e33d69a71c5beb8fe5785b53fd6b37658334e8e0)
    | fix | preserve immutability of materialized clones |
    |
    
[caf616670f](https://redirect.github.com/angular/angular/commit/caf616670fd20d528aa69e0131cc17d60f0cc27d)
    | fix | run root interceptors in the terminal request chain |
    
    <!-- CHANGELOG SPLIT MARKER -->
    
    </details>
    
    ---
    
    ### Configuration
    
    📅 **Schedule**: (in timezone Etc/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.
    
    ---
    
    - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
    this box
    
    ---
    
    This PR was generated by [Mend Renovate](https://mend.io/renovate/).
    View the [repository job
    log](https://developer.mend.io/github/apache/texera).
    
    
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC43OS4xIiwidXBkYXRlZEluVmVyIjoiNDQuNzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIiwicmVsZWFzZS92MS4yIiwic2VjdXJpdHkiXX0=-->
    
    ---------
    
    Co-authored-by: mengw15 <[email protected]>
    Co-authored-by: Xuan Gu <[email protected]>
---
 frontend/LICENSE-binary |  2 +-
 frontend/package.json   |  2 +-
 frontend/yarn.lock      | 12 ++++++------
 3 files changed, 8 insertions(+), 8 deletions(-)

diff --git a/frontend/LICENSE-binary b/frontend/LICENSE-binary
index 903da17fd7..35a2f4e069 100644
--- a/frontend/LICENSE-binary
+++ b/frontend/LICENSE-binary
@@ -251,7 +251,7 @@ Angular / npm packages:
   - @ali-hm/[email protected]
   - @angular/[email protected]
   - @angular/[email protected]
-  - @angular/[email protected]
+  - @angular/[email protected]
   - @angular/[email protected]
   - @angular/[email protected]
   - @angular/[email protected]
diff --git a/frontend/package.json b/frontend/package.json
index a01e97cef4..b0721f2c51 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -24,7 +24,7 @@
     "@ali-hm/angular-tree-component": "12.0.5",
     "@angular/animations": "21.2.18",
     "@angular/cdk": "21.2.14",
-    "@angular/common": "21.2.19",
+    "@angular/common": "21.2.20",
     "@angular/compiler": "21.2.20",
     "@angular/core": "21.2.20",
     "@angular/forms": "21.2.18",
diff --git a/frontend/yarn.lock b/frontend/yarn.lock
index 77f5add04b..d7a767961f 100644
--- a/frontend/yarn.lock
+++ b/frontend/yarn.lock
@@ -707,15 +707,15 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@angular/common@npm:21.2.19":
-  version: 21.2.19
-  resolution: "@angular/common@npm:21.2.19"
+"@angular/common@npm:21.2.20":
+  version: 21.2.20
+  resolution: "@angular/common@npm:21.2.20"
   dependencies:
     tslib: "npm:^2.3.0"
   peerDependencies:
-    "@angular/core": 21.2.19
+    "@angular/core": 21.2.20
     rxjs: ^6.5.3 || ^7.4.0
-  checksum: 
10c0/e7e562b647ed36fd048e174ef1073d913e92810ab6581b45ce9332201fe38952d87186ff6e73ba1a0e76008aad5c41270a109713742a8769a235e3122104e43b
+  checksum: 
10c0/402065fef44b9dcd6eae5a6042b3b7f9cf4db6cb9a5fb6e9e9bf3e3dd4560ffee75d42d789b7fcd1c6ba2711f24c4f1d53e59b644e9289cc47135da221938e04
   languageName: node
   linkType: hard
 
@@ -10718,7 +10718,7 @@ __metadata:
     "@angular/animations": "npm:21.2.18"
     "@angular/cdk": "npm:21.2.14"
     "@angular/cli": "npm:21.2.19"
-    "@angular/common": "npm:21.2.19"
+    "@angular/common": "npm:21.2.20"
     "@angular/compiler": "npm:21.2.20"
     "@angular/compiler-cli": "npm:21.2.18"
     "@angular/core": "npm:21.2.20"

Reply via email to