{"id":"CVE-2026-50170","sourceIdentifier":"security-advisories@github.com","published":"2026-06-22T18:16:42.403","lastModified":"2026-07-09T15:31:59.043","vulnStatus":"Analyzed","cveTags":[],"descriptions":[{"lang":"en","value":"Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages. Prior to 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23, a vulnerability was discovered in @angular/common when Server-Side Rendering (SSR) and hydration are enabled. 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. However, the caching mechanism fails to inspect the withCredentials flag or the Cookie header of outgoing requests. As a result, credentialed, user-specific responses may be cached by default in the shared TransferState payload. When these responses are serialized into the HTML, any caching layer (such as a CDN, reverse proxy, or shared server cache) that caches the SSR-rendered HTML page could inadvertently cache and leak one user's private data to other users, leading to a high-severity information disclosure vulnerability. This vulnerability is fixed in 22.0.0-rc.2, 21.2.15, 20.3.22, and 19.2.23."}],"affected":[{"source":"security-advisories@github.com","affectedData":[{"vendor":"angular","product":"angular","versions":[{"version":">= 22.0.0-next.0, < 22.0.0-rc.2","status":"affected"},{"version":">= 21.0.0-next.0, < 21.2.15","status":"affected"},{"version":">= 20.0.0-next.0, < 20.3.22","status":"affected"},{"version":">= 19.0.0-next.0, < 19.2.23","status":"affected"},{"version":"<= 18.2.14","status":"affected"}]}]}],"metrics":{"cvssMetricV40":[{"source":"security-advisories@github.com","type":"Secondary","cvssData":{"version":"4.0","vectorString":"CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/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":8.2,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","attackRequirements":"PRESENT","privilegesRequired":"NONE","userInteraction":"NONE","vulnConfidentialityImpact":"HIGH","vulnIntegrityImpact":"NONE","vulnAvailabilityImpact":"NONE","subConfidentialityImpact":"NONE","subIntegrityImpact":"NONE","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:N/S:U/C:H/I:N/A:N","baseScore":7.5,"baseSeverity":"HIGH","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"NONE","availabilityImpact":"NONE"},"exploitabilityScore":3.9,"impactScore":3.6}],"ssvcV203":[{"source":"134c704f-9b21-4f2e-91b3-4a467353bcc0","ssvcData":{"timestamp":"2026-06-23T16:00:13.983210Z","id":"CVE-2026-50170","options":[{"exploitation":"none"},{"automatable":"no"},{"technicalImpact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}]},"weaknesses":[{"source":"security-advisories@github.com","type":"Secondary","description":[{"lang":"en","value":"CWE-524"}]}],"configurations":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*","versionEndIncluding":"18.2.14","matchCriteriaId":"B0857B9D-DDD4-42CC-B026-AF3B4081BD14"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*","versionStartIncluding":"19.0.0","versionEndExcluding":"19.2.23","matchCriteriaId":"9AF8FC47-F9CA-48DC-88C4-51ECA89577A7"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*","versionStartIncluding":"20.0.0","versionEndExcluding":"20.3.22","matchCriteriaId":"6594675A-6A09-4550-AF8B-C9E25CCFE022"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:*:*:*:*:*:node.js:*:*","versionStartIncluding":"21.0.0","versionEndExcluding":"21.2.15","matchCriteriaId":"C446A761-4FD9-43B8-8EF2-8A23EC2091DF"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next0:*:*:*:node.js:*:*","matchCriteriaId":"71DA6BB7-D67B-431B-A4BB-792DEC51C980"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next1:*:*:*:node.js:*:*","matchCriteriaId":"01F108F8-1BC4-4E33-BB49-646C118CA697"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next10:*:*:*:node.js:*:*","matchCriteriaId":"C5388FC5-DA5B-4C27-B868-E0D8BAD2EB28"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next11:*:*:*:node.js:*:*","matchCriteriaId":"4A18EA1D-24C0-43F7-B73B-562F86E3A46E"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next12:*:*:*:node.js:*:*","matchCriteriaId":"B59DAA7F-A7B5-4687-96B0-10CD61165910"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next2:*:*:*:node.js:*:*","matchCriteriaId":"19366888-B58B-4AEE-B99C-CBB26CCF9AA5"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next3:*:*:*:node.js:*:*","matchCriteriaId":"D22F98A2-DB7A-41D2-AAA0-90D8AE707267"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next4:*:*:*:node.js:*:*","matchCriteriaId":"7D19C89E-9D61-4DBD-8CA5-5F317691E1B6"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next5:*:*:*:node.js:*:*","matchCriteriaId":"D6E69821-B1AB-4FE8-9245-74775E86D346"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next6:*:*:*:node.js:*:*","matchCriteriaId":"E7096357-4623-475F-A015-ADB8EE2B450F"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next7:*:*:*:node.js:*:*","matchCriteriaId":"A81F04C2-2824-40B9-B7F8-B27E6DF21403"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next8:*:*:*:node.js:*:*","matchCriteriaId":"D0002A01-F19D-47F3-94EA-C3423EC763E6"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:next9:*:*:*:node.js:*:*","matchCriteriaId":"7499CFC4-AAA5-461E-909F-0E514CFD5DA1"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:rc0:*:*:*:node.js:*:*","matchCriteriaId":"2A781EF8-8ADA-4960-B839-0064607D36AE"},{"vulnerable":true,"criteria":"cpe:2.3:a:angular:angular:22.0.0:rc1:*:*:*:node.js:*:*","matchCriteriaId":"4775F816-6599-44D3-BD0F-9C843AB37DF3"}]}]}],"references":[{"url":"https://github.com/angular/angular/pull/67964","source":"security-advisories@github.com","tags":["Issue Tracking","Patch"]},{"url":"https://github.com/angular/angular/security/advisories/GHSA-q6f4-qqrg-jv6x","source":"security-advisories@github.com","tags":["Third Party Advisory"]}]}