Skip to content
Heist/ feed
Back to feed
Medium

Angular SSR: Open Redirect and Request Steering via Encoded X-Forwarded-Prefix

Type: advisorySources: OSV

The Angular SSR is a server-rise rendering tool for Angular applications. From 19.0.0-next.0 to before 19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7, a vulnerability exists in the X-Forwarded-Prefix header processing logic within Angular SSR. The internal validation mechanism fails to properly account for URL-encoded characters, specifically dots (%2e%2e). This allows an attacker to bypass security filters by injecting encoded path traversal sequences that are later decoded and utilized by the application logic. When an Angular SSR application is configured to trust proxy headers and is deployed behind a proxy that forwards the X-Forwarded-Prefix header without prior sanitization, an attacker can provide a payload such as /%2e%2e/evil. This vulnerability is fixed in19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-44437
Confirmed fixed CVEs
Not specified
Updated in this feed
4 Nov 2026, 15:31 UTC · Revision 1

Source evidence

Angular SSR: Open Redirect and Request Steering via Encoded X-Forwarded-Prefix

core-osv · Original source

Published 13 May 2026, 21:23 UTC

The Angular SSR is a server-rise rendering tool for Angular applications. From 19.0.0-next.0 to before 19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7, a vulnerability exists in the X-Forwarded-Prefix header processing logic within Angular SSR. The internal validation mechanism fails to properly account for URL-encoded characters, specifically dots (%2e%2e). This allows an attacker to bypass security filters by injecting encoded path traversal sequences that are later decoded and utilized by the application logic. When an Angular SSR application is configured to trust proxy headers and is deployed behind a proxy that forwards the X-Forwarded-Prefix header without prior sanitization, an attacker can provide a payload such as /%2e%2e/evil. This vulnerability is fixed in19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7.

osv:CVE-2026-44437
Complete source record
{
  "id": "eaf1b9b5a610448c20664255663cdea2483486daaa5eaa1e8fd3e22608a744fc",
  "url": "https://osv.dev/vulnerability/CVE-2026-44437",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Angular SSR: Open Redirect and Request Steering via Encoded X-Forwarded-Prefix",
    "summary": "The Angular SSR is a server-rise rendering tool for Angular applications. From 19.0.0-next.0 to before 19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7, a vulnerability exists in the X-Forwarded-Prefix header processing logic within Angular SSR. The internal validation mechanism fails to properly account for URL-encoded characters, specifically dots (%2e%2e). This allows an attacker to bypass security filters by injecting encoded path traversal sequences that are later decoded and utilized by the application logic. When an Angular SSR application is configured to trust proxy headers and is deployed behind a proxy that forwards the X-Forwarded-Prefix header without prior sanitization, an attacker can provide a payload such as /%2e%2e/evil. This vulnerability is fixed in19.2.25, 20.3.25, 21.2.9, and 22.0.0-next.7.",
    "evidence": "osv:CVE-2026-44437",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-44437",
      "aliases": [
        "CVE-2026-44437",
        "GHSA-69xr-m8h6-h664"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:L/SI:L/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/angular/angular-cli",
              "type": "GIT",
              "events": [
                {
                  "introduced": "d622e594878611c4a00aab94e15ce2dcf108b088"
                },
                {
                  "fixed": "1aa23cd04bb606f580788f88d7ab30ecd508813e"
                },
                {
                  "introduced": "510db3e93f6aa8daccc80dd0fcbc4dd0c3a3fcec"
                },
                {
                  "fixed": "985e58075fb48c8cc1bc0d3075d2e1d41fe31433"
                },
                {
                  "introduced": "a06ccb3f5f20364bfd0ff47269ac63824652d118"
                },
                {
                  "fixed": "564b1084e2bfb0813f374f1bff6f6ec5867b4bc2"
                },
                {
                  "introduced": "93b1debc57ff7298be616469cdefe94f215c43be"
                },
                {
                  "last_affected": "012239817487fbd3a404ced3bbf7b8dcbda2ff02"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "19.0.0"
                      },
                      {
                        "fixed": "19.2.25"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "20.0.0"
                      },
                      {
                        "fixed": "20.3.25"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "21.0.0"
                      },
                      {
                        "fixed": "21.2.9"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next0:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next0"
                      },
                      {
                        "last_affected": "22.0.0-next0"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next1:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next1"
                      },
                      {
                        "last_affected": "22.0.0-next1"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next2:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next2"
                      },
                      {
                        "last_affected": "22.0.0-next2"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next3:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next3"
                      },
                      {
                        "last_affected": "22.0.0-next3"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next4:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next4"
                      },
                      {
                        "last_affected": "22.0.0-next4"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next5:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next5"
                      },
                      {
                        "last_affected": "22.0.0-next5"
                      }
                    ],
                    "source": "CPE_STRING"
                  },
                  {
                    "cpe": "cpe:2.3:a:angular:angular_cli:22.0.0:next6:*:*:*:node.js:*:*",
                    "range": [
                      {
                        "introduced": "22.0.0-next6"
                      },
                      {
                        "last_affected": "22.0.0-next6"
                      }
                    ],
                    "source": "CPE_STRING"
                  }
                ]
              }
            }
          ],
          "versions": [
            "22.0.0-next0",
            "22.0.0-next1",
            "22.0.0-next2",
            "22.0.0-next3",
            "22.0.0-next4",
            "22.0.0-next5",
            "22.0.0-next6",
            "v22.0.0-next.6",
            "v22.0.0-next.5",
            "v22.0.0-next.4",
            "v22.0.0-next.3",
            "v22.0.0-next.2",
            "v22.0.0-next.1",
            "v22.0.0-next.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-44437.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:37.018587658Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44437.json",
        "https://github.com/angular/angular-cli/security/advisories/GHSA-69xr-m8h6-h664",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-44437",
        "https://github.com/angular/angular-cli/pull/33031"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-22",
          "CWE-601"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44437.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-44437",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 504160,
  "published_at": "2026-05-13T21:23:59.26+00:00"
}