Search

Find a vulnerability

Search criteria

    2 vulnerabilities found for router by @angular

    CVE-2026-101896 (GCVE-0-2026-101896)

    Vulnerability from nvd – Published: 2026-10-14 15:05 – Updated: 2026-10-14 15:05
    VLAI
    Title
    Angular: Denial of Service via Numeric URL Matrix Parameters in Server-Side Rendering (SSR)
    Summary
    Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.32, 21.2.24, and 22.2.0, the @angular/router URL parser stores numeric matrix parameter names and numeric outlet names as properties on initially empty JavaScript objects during Node.js server-side rendering. V8 can interpret these URL-derived keys as array indices and allocate dense backing stores sized to high numeric values, so repeated small path segments cause disproportionate per-segment heap consumption. An unauthenticated attacker can send overlapping requests containing repeated numeric matrix parameters when SSR is enabled, the router directly parses the request URL, and upstream proxies allow semicolons and multiple path segments, eventually exhausting the Node.js old-space heap and terminating the SSR worker. Pure client-side Angular applications are not affected. This issue is fixed in versions 20.3.32, 21.2.24, and 22.2.0.
    CWE
    • CWE-400 - Uncontrolled Resource Consumption
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7648 records in the last 180 days details
    Impacted products
    Vendor Product Version
    angular angular Affected: <= 19.2.25
    Affected: >= 20.0.0, < 20.3.32
    Affected: >= 21.0.0, < 21.2.24
    Affected: >= 22.0.0, < 22.2.0
    Create a notification for this product.
    @angular router Affected: <= 19.2.25
    Affected: >= 20.0.0, < 20.3.32
    Affected: >= 21.0.0, < 21.2.24
    Affected: >= 22.0.0, < 22.2.0
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "product": "angular",
              "vendor": "angular",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 19.2.25"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 20.0.0, \u003c 20.3.32"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 21.0.0, \u003c 21.2.24"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 22.0.0, \u003c 22.2.0"
                }
              ]
            },
            {
              "product": "router",
              "vendor": "@angular",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 19.2.25"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 20.0.0, \u003c 20.3.32"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 21.0.0, \u003c 21.2.24"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 22.0.0, \u003c 22.2.0"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.32, 21.2.24, and 22.2.0, the @angular/router URL parser stores numeric matrix parameter names and numeric outlet names as properties on initially empty JavaScript objects during Node.js server-side rendering. V8 can interpret these URL-derived keys as array indices and allocate dense backing stores sized to high numeric values, so repeated small path segments cause disproportionate per-segment heap consumption. An unauthenticated attacker can send overlapping requests containing repeated numeric matrix parameters when SSR is enabled, the router directly parses the request URL, and upstream proxies allow semicolons and multiple path segments, eventually exhausting the Node.js old-space heap and terminating the SSR worker. Pure client-side Angular applications are not affected. This issue is fixed in versions 20.3.32, 21.2.24, and 22.2.0."
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400: Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770: Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-14T15:05:42.934Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3"
            },
            {
              "name": "https://github.com/angular/angular/issues/70716",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/issues/70716"
            },
            {
              "name": "https://github.com/angular/angular/pull/70717",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/pull/70717"
            },
            {
              "name": "https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583"
            },
            {
              "name": "https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d"
            },
            {
              "name": "https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v20.3.32",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v20.3.32"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v21.2.24",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v21.2.24"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v22.2.0",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v22.2.0"
            }
          ],
          "source": {
            "advisory": "GHSA-ff3f-86qr-9cv3",
            "discovery": "UNKNOWN"
          },
          "title": "Angular: Denial of Service via Numeric URL Matrix Parameters in Server-Side Rendering (SSR)"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-101896",
        "datePublished": "2026-10-14T15:05:42.934Z",
        "dateReserved": "2026-09-28T15:55:37.906Z",
        "dateUpdated": "2026-10-14T15:05:42.934Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-101896 (GCVE-0-2026-101896)

    Vulnerability from cvelistv5 – Published: 2026-10-14 15:05 – Updated: 2026-10-14 15:05
    VLAI
    Title
    Angular: Denial of Service via Numeric URL Matrix Parameters in Server-Side Rendering (SSR)
    Summary
    Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.32, 21.2.24, and 22.2.0, the @angular/router URL parser stores numeric matrix parameter names and numeric outlet names as properties on initially empty JavaScript objects during Node.js server-side rendering. V8 can interpret these URL-derived keys as array indices and allocate dense backing stores sized to high numeric values, so repeated small path segments cause disproportionate per-segment heap consumption. An unauthenticated attacker can send overlapping requests containing repeated numeric matrix parameters when SSR is enabled, the router directly parses the request URL, and upstream proxies allow semicolons and multiple path segments, eventually exhausting the Node.js old-space heap and terminating the SSR worker. Pure client-side Angular applications are not affected. This issue is fixed in versions 20.3.32, 21.2.24, and 22.2.0.
    CWE
    • CWE-400 - Uncontrolled Resource Consumption
    • CWE-770 - Allocation of Resources Without Limits or Throttling
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7648 records in the last 180 days details
    Impacted products
    Vendor Product Version
    angular angular Affected: <= 19.2.25
    Affected: >= 20.0.0, < 20.3.32
    Affected: >= 21.0.0, < 21.2.24
    Affected: >= 22.0.0, < 22.2.0
    Create a notification for this product.
    @angular router Affected: <= 19.2.25
    Affected: >= 20.0.0, < 20.3.32
    Affected: >= 21.0.0, < 21.2.24
    Affected: >= 22.0.0, < 22.2.0
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "product": "angular",
              "vendor": "angular",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 19.2.25"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 20.0.0, \u003c 20.3.32"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 21.0.0, \u003c 21.2.24"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 22.0.0, \u003c 22.2.0"
                }
              ]
            },
            {
              "product": "router",
              "vendor": "@angular",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 19.2.25"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 20.0.0, \u003c 20.3.32"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 21.0.0, \u003c 21.2.24"
                },
                {
                  "status": "affected",
                  "version": "\u003e= 22.0.0, \u003c 22.2.0"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 20.3.32, 21.2.24, and 22.2.0, the @angular/router URL parser stores numeric matrix parameter names and numeric outlet names as properties on initially empty JavaScript objects during Node.js server-side rendering. V8 can interpret these URL-derived keys as array indices and allocate dense backing stores sized to high numeric values, so repeated small path segments cause disproportionate per-segment heap consumption. An unauthenticated attacker can send overlapping requests containing repeated numeric matrix parameters when SSR is enabled, the router directly parses the request URL, and upstream proxies allow semicolons and multiple path segments, eventually exhausting the Node.js old-space heap and terminating the SSR worker. Pure client-side Angular applications are not affected. This issue is fixed in versions 20.3.32, 21.2.24, and 22.2.0."
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 8.2,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "vectorString": "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",
                "version": "4.0",
                "vulnAvailabilityImpact": "HIGH",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400: Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-770",
                  "description": "CWE-770: Allocation of Resources Without Limits or Throttling",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-14T15:05:42.934Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/angular/angular/security/advisories/GHSA-ff3f-86qr-9cv3"
            },
            {
              "name": "https://github.com/angular/angular/issues/70716",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/issues/70716"
            },
            {
              "name": "https://github.com/angular/angular/pull/70717",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/pull/70717"
            },
            {
              "name": "https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/03872a80bcf1c89b2b04cdd3f444b2ee954da583"
            },
            {
              "name": "https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/5af61216eab8bf4a6697a1d79bda3d857c06f89d"
            },
            {
              "name": "https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/commit/ddfe21072ba32ca4cd9d7d3c6b7df66af81d58c4"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v20.3.32",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v20.3.32"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v21.2.24",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v21.2.24"
            },
            {
              "name": "https://github.com/angular/angular/releases/tag/v22.2.0",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/angular/angular/releases/tag/v22.2.0"
            }
          ],
          "source": {
            "advisory": "GHSA-ff3f-86qr-9cv3",
            "discovery": "UNKNOWN"
          },
          "title": "Angular: Denial of Service via Numeric URL Matrix Parameters in Server-Side Rendering (SSR)"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-101896",
        "datePublished": "2026-10-14T15:05:42.934Z",
        "dateReserved": "2026-09-28T15:55:37.906Z",
        "dateUpdated": "2026-10-14T15:05:42.934Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }