{"schemaVersion":3,"id":"CVE-2026-44437","aliases":["GHSA-69xr-m8h6-h664"],"status":"published","duplicateOf":null,"title":null,"description":"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.\nWhen 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.","dates":{"published":"2026-05-13T21:23:59.260Z","modified":"2026-05-14T13:35:18.562Z","reserved":null,"kevAdded":[],"kevDue":[]},"cvss":{"headline":{"score":6.9,"severity":"medium","version":"4.0","versionLabel":"v4.0","source":"CVE.org","vector":"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","computed":false,"selection":"backend-summary"},"metrics":[{"version":"4.0","versionLabel":"v4.0","source":"CVE.org","score":6.9,"severity":"medium","vector":"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","exploitability":null,"impact":null,"computed":false},{"version":"4.0","versionLabel":"v4.0","source":"OSV · Npm","score":6.9,"severity":"medium","vector":"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","exploitability":null,"impact":null,"computed":true},{"version":"4.0","versionLabel":"v4.0","source":"NVD","score":6.9,"severity":"medium","vector":"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X","exploitability":null,"impact":null,"computed":false},{"version":"3.1","versionLabel":"v3.1","source":"NVD","score":6.1,"severity":"medium","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","exploitability":null,"impact":null,"computed":false}]},"epss":{"probability":0.00304,"percentile":0.21845,"severity":"low","asOf":"2026-10-20T00:00:00.000Z","change":{"pp":0.101,"baselineDate":"2026-09-20T00:00:00.000Z","baselineScore":0.00203},"history":[{"date":"2026-09-14T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-15T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-16T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-17T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-18T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-19T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-20T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00304,"percentile":0.21845}],"last30":[{"date":"2026-09-20T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-21T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-22T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-23T00:00:00.000Z","score":0.00203,"percentile":null},{"date":"2026-09-24T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-25T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-26T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-27T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-28T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-29T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-09-30T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-01T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-02T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-03T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-04T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-05T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-06T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-07T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-08T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-09T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-10T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-11T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-12T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-13T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-14T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-15T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-16T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-17T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-18T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-19T00:00:00.000Z","score":0.00304,"percentile":null},{"date":"2026-10-20T00:00:00.000Z","score":0.00304,"percentile":0.21845}]},"kev":{"state":"not-listed","entries":[],"listedCount":0,"totalCatalogs":3,"catalogs":[{"source":"cisa","label":"CISA","listed":false,"entry":null},{"source":"enisa","label":"ENISA","listed":false,"entry":null},{"source":"circl","label":"CIRCL","listed":false,"entry":null}]},"ransomware":{"state":"none-recorded","sources":[]},"exploits":[],"exploitCount":0,"weaknesses":[{"id":"CWE-22","name":"Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')","description":"The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.","type":"weakness","status":"Stable","abstraction":"Base","likelihoodOfExploit":"High","url":"https://cwe.mitre.org/data/definitions/22.html"},{"id":"CWE-601","name":"URL Redirection to Untrusted Site ('Open Redirect')","description":"The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect.","type":"weakness","status":"Draft","abstraction":"Base","likelihoodOfExploit":"Low","url":"https://cwe.mitre.org/data/definitions/601.html"}],"affected":[{"vendor":"angular","product":"angular_cli","name":"angular cli","label":"angular_cli","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 19.0.0, < 19.2.25","noFixRecorded":false,"fixedIn":null},{"text":"≥ 20.0.0, < 20.3.25","noFixRecorded":false,"fixedIn":null},{"text":"≥ 21.0.0, < 21.2.9","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next0","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next1","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next2","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next3","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next4","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next5","noFixRecorded":false,"fixedIn":null},{"text":"22.0.0:next6","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 19.0.0, < 19.2.25 | ≥ 20.0.0, < 20.3.25 | ≥ 21.0.0, < 21.2.9 | 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","eol":null,"hubHref":"/vendor/angular/angular_cli"},{"vendor":"angular","product":"angular-cli","name":"angular-cli","label":"angular-cli","ecosystem":null,"cpePart":"a","purl":null,"purlType":null,"versions":[{"text":"≥ 22.0.0-next.0, < 22.0.0-next.7","noFixRecorded":false,"fixedIn":null},{"text":"≥ 21.0.0-next.0, < 21.2.9","noFixRecorded":false,"fixedIn":null},{"text":"≥ 20.0.0-next.0, < 20.3.25","noFixRecorded":false,"fixedIn":null},{"text":"≥ 19.0.0-next.0, < 19.2.25","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 22.0.0-next.0, < 22.0.0-next.7 | ≥ 21.0.0-next.0, < 21.2.9 | ≥ 20.0.0-next.0, < 20.3.25 | ≥ 19.0.0-next.0, < 19.2.25","eol":null,"hubHref":"/vendor/angular/angular-cli"},{"vendor":"@angular","product":"ssr","name":"@angular/ssr","label":"ssr","ecosystem":"Npm","cpePart":null,"purl":"pkg:npm/@angular/ssr","purlType":"npm","versions":[{"text":"≥ 22.0.0-next.0, < 22.0.0-next.7","noFixRecorded":false,"fixedIn":null},{"text":"≥ 21.0.0-next.0, < 21.2.9","noFixRecorded":false,"fixedIn":null},{"text":"≥ 20.0.0-next.0, < 20.3.25","noFixRecorded":false,"fixedIn":null},{"text":"≥ 19.0.0-next.0, < 19.2.25","noFixRecorded":false,"fixedIn":null}],"versionsText":"≥ 22.0.0-next.0, < 22.0.0-next.7 | ≥ 21.0.0-next.0, < 21.2.9 | ≥ 20.0.0-next.0, < 20.3.25 | ≥ 19.0.0-next.0, < 19.2.25","eol":null,"hubHref":null}],"affectedCount":3,"eol":{"hasEol":false,"count":0},"references":[{"url":"https://github.com/angular/angular-cli/security/advisories/GHSA-69xr-m8h6-h664","label":"github.com/angular/angular-cli/security/advisories/GHSA-69xr-m8h6-h664","hostname":"github.com","tags":["X Refsource CONFIRM","WEB","Vendor Advisory"]},{"url":"https://github.com/angular/angular-cli/pull/33031","label":"github.com/angular/angular-cli/pull/33031","hostname":"github.com","tags":["X Refsource MISC","WEB","Patch"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-44437","label":"nvd.nist.gov/vuln/detail/CVE-2026-44437","hostname":"nvd.nist.gov","tags":["Advisory"]},{"url":"https://angular.dev/best-practices/security#configuring-trusted-proxy-headers","label":"angular.dev/best-practices/security","hostname":"angular.dev","tags":["WEB"]},{"url":"https://github.com/angular/angular-cli","label":"github.com/angular/angular-cli","hostname":"github.com","tags":["PACKAGE"]}],"lineage":{"upstream":[],"downstream":[],"duplicates":[],"related":[]},"timeline":[{"kind":"published","date":"2026-05-13T21:23:59.260Z","label":"Published","detail":"Vulnerability first disclosed.","source":null},{"kind":"modified","date":"2026-05-14T13:35:18.562Z","label":"Last modified","detail":"Vulnerability information updated.","source":null}],"risk":{"score":28,"level":"medium","profile":"Default","thresholds":{"critical":75,"high":50,"medium":25,"low":10}},"meta":{"dataAsOf":"2026-10-21T11:35:27.741Z","stale":false,"partial":false}}