{"vulnerability": "ghsa-jhpw-976m-542j", "sightings": [{"uuid": "6fab0d99-c599-433c-b88c-2220a8a7901e", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "GHSA-jhpw-976m-542j", "type": "seen", "source": "https://gist.github.com/alon710/73fc02db3c552514344a681ca47f8151", "content": "# CVE-2026-68945: CVE-2026-68945: Cache-Key Ambiguity in Angular HttpTransferCache Leading to State Poisoning\n\n&gt; **CVSS Score:** 8.8\n&gt; **Published:** 2026-08-03\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-68945\n\n## Summary\nAn in-depth technical analysis of CVE-2026-68945, a high-severity security vulnerability in Angular's `@angular/common/http` package. The flaw stems from an ambiguity in how query parameters are serialized to generate cache keys during Server-Side Rendering (SSR) within the `HttpTransferCache` component. By failing to encode delimiters and implicitly coercing arrays to comma-joined strings, the serialization mechanism yields identical cache keys for distinct requests, facilitating State Poisoning and Cross-Request Response Reuse.\n\n## TL;DR\nImproper query parameter serialization in Angular's HttpTransferCache yields identical cache keys for semantically different requests, allowing remote attackers to poison application states during SSR hydration.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-345\n- **Attack Vector**: Network\n- **CVSS Score**: 8.8\n- **Exploit Status**: Proof-of-Concept\n- **Impact**: State Poisoning / Cross-Request Response Reuse\n- **KEV Status**: Not Listed\n\n## Affected Systems\n\n- Angular applications utilizing Server-Side Rendering (SSR)\n- Angular projects using client-side hydration with HttpTransferCache enabled\n- **@angular/common**: &lt; 20.3.27 (Fixed in: `20.3.27`)\n- **@angular/common**: &gt;= 21.0.0-next.0, &lt; 21.2.19 (Fixed in: `21.2.19`)\n- **@angular/common**: &gt;= 22.0.0-next.0, &lt; 22.0.2 (Fixed in: `22.0.2`)\n\n## Mitigation\n\n- Upgrade the `@angular/common` package to safe release channels to resolve the key-generation flaw.\n- Explicitly disable caching for state-sensitive HTTP routes that govern administrative operations or user permissions.\n- Audit custom implementation codecs to ensure that all URL queries are encoded uniformly with platform-native APIs.\n\n**Remediation Steps:**\n1. Open the project's dependency manifest (`package.json`).\n2. Update `@angular/common` to version `20.3.27` or higher for the 20.x release branch.\n3. Update `@angular/common` to version `21.2.19` or higher for the 21.x release branch.\n4. Update `@angular/common` to version `22.0.2` or higher for the 22.x release branch.\n5. Run your package manager installation command (e.g., `npm install` or `yarn install`) to apply the changes.\n6. Deploy the updated application to production and restart the SSR server instances to purge any existing server-side cache stores.\n\n## References\n\n- [GitHub Security Advisory GHSA-jhpw-976m-542j](https://github.com/angular/angular/security/advisories/GHSA-jhpw-976m-542j)\n- [CVE Record on CVE.org](https://www.cve.org/CVERecord?id=CVE-2026-68945)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-68945) - Automated Vulnerability Intelligence*", "creation_timestamp": "2026-08-03T16:32:48.601115Z"}]}