{"id":"CVE-2026-44437","sourceIdentifier":"security-advisories@github.com","published":"2026-05-13T22:16:44.710","lastModified":"2026-10-26T14:10:00.130","vulnStatus":"Analyzed","cveTags":[],"descriptions":[{"lang":"en","value":"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."},{"lang":"es","value":"Angular SSR es una herramienta de renderizado del lado del servidor para aplicaciones Angular. Desde 19.0.0-next.0 hasta antes de 19.2.25, 20.3.25, 21.2.9 y 22.0.0-next.7, existe una vulnerabilidad en la lógica de procesamiento del encabezado X-Forwarded-Prefix dentro de Angular SSR. El mecanismo de validación interno no tiene en cuenta correctamente los caracteres codificados en URL, específicamente los puntos (%2e%2e). Esto permite a un atacante eludir los filtros de seguridad inyectando secuencias de salto de ruta codificadas que luego son decodificadas y utilizadas por la lógica de la aplicación.\nCuando una aplicación Angular SSR está configurada para confiar en los encabezados de proxy y se despliega detrás de un proxy que reenvía el encabezado X-Forwarded-Prefix sin sanitización previa, un atacante puede proporcionar una carga útil como /%2e%2e/evil. Esta vulnerabilidad se corrige en 19.2.25, 20.3.25, 21.2.9 y 22.0.0-next.7."}],"affected":[{"source":"security-advisories@github.com","affectedData":[{"vendor":"angular","product":"angular-cli","versions":[{"version":">= 22.0.0-next.0, < 22.0.0-next.7","status":"affected"},{"version":">= 21.0.0-next.0, < 21.2.9","status":"affected"},{"version":">= 20.0.0-next.0, < 20.3.25","status":"affected"},{"version":">= 19.0.0-next.0, < 19.2.25","status":"affected"}]}]}],"metrics":{"cvssMetricV40":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"4.0","vectorString":"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","baseScore":6.9,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"NONE","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"NONE","vulnIntegrityImpact":"LOW","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"LOW","subIntegrityImpact":"LOW","subAvailabilityImpact":"NONE","exploitMaturity":"NOT_DEFINED","confidentialityRequirement":"NOT_DEFINED","integrityRequirement":"NOT_DEFINED","availabilityRequirement":"NOT_DEFINED","modifiedAttackVector":"NOT_DEFINED","modifiedAttackComplexity":"NOT_DEFINED","modifiedAttackRequirements":"NOT_DEFINED","modifiedPrivilegesRequired":"NOT_DEFINED","modifiedUserInteraction":"NOT_DEFINED","modifiedVulnConfidentialityImpact":"NOT_DEFINED","modifiedVulnIntegrityImpact":"NOT_DEFINED","modifiedVulnAvailabilityImpact":"NOT_DEFINED","modifiedSubConfidentialityImpact":"NOT_DEFINED","modifiedSubIntegrityImpact":"NOT_DEFINED","modifiedSubAvailabilityImpact":"NOT_DEFINED","Safety":"NOT_DEFINED","Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","valueDensity":"NOT_DEFINED","vulnerabilityResponseEffort":"NOT_DEFINED","providerUrgency":"NOT_DEFINED"}}],"cvssMetricV31":[{"source":"nvd@nist.gov","type":"Primary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","baseScore":6.1,"baseSeverity":"MEDIUM","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"REQUIRED","scope":"CHANGED","confidentialityImpact":"LOW","integrityImpact":"LOW","availabilityImpact":"NONE"},"exploitabilityScore":2.8,"impactScore":2.7}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-05-14T13:33:05.814553Z","id":"CVE-2026-44437","options":[{"exploitation":"none"},{"automatable":"yes"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"weaknesses":[{"source":"security-advisories@github.com","type":"Secondary","description":[{"lang":"en","value":"CWE-22"},{"lang":"en","value":"CWE-601"}]}],"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*","versionStartIncluding":"19.0.0","versionEndExcluding":"19.2.25","matchCriteriaId":"84649283-0E00-40B7-A82E-01B31E0B8B85"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*","versionStartIncluding":"20.0.0","versionEndExcluding":"20.3.25","matchCriteriaId":"5E3A3818-EEE9-41E9-BE31-2408F86FBDDA"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:*:*:*:*:*:node.js:*:*","versionStartIncluding":"21.0.0","versionEndExcluding":"21.2.9","matchCriteriaId":"33722CD1-F326-4CC5-8D65-5830A42E700A"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next0:*:*:*:node.js:*:*","matchCriteriaId":"1BD57930-760B-43CB-8BD1-25D79A7E60FC"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next1:*:*:*:node.js:*:*","matchCriteriaId":"81D13997-DAC1-472B-93D2-8BF19ACC6BFC"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next2:*:*:*:node.js:*:*","matchCriteriaId":"03842109-D464-4CC5-99B5-2E26F2FF8EE6"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next3:*:*:*:node.js:*:*","matchCriteriaId":"2F915E06-EA6F-4D87-80B4-DF75DB1F04CE"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next4:*:*:*:node.js:*:*","matchCriteriaId":"A8AC64FD-595D-4A0E-A90E-FCED10166F8C"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next5:*:*:*:node.js:*:*","matchCriteriaId":"F16DC68A-649E-4DEA-B671-5076C66E32A9"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular_cli:22.0.0:next6:*:*:*:node.js:*:*","matchCriteriaId":"DC60F6AD-121E-49C5-9FDF-9F46E2DABF2B"}]}]}],"references":[{"url":"https://github.com/angular/angular-cli/pull/33031","source":"security-advisories@github.com","tags":["Patch"]},{"url":"https://github.com/angular/angular-cli/security/advisories/GHSA-69xr-m8h6-h664","source":"security-advisories@github.com","tags":["Vendor Advisory"]}]}