[deps]: Update @angular/common to v20.3.14 [SECURITY]#938
Conversation
|
|
Internal tracking: |
Edited/Blocked NotificationRenovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR. You can manually request rebase by checking the rebase/retry box above. |
|
Claude finished @renovate[bot]'s task —— View job Code Review CompleteSummary of ChangesThis PR updates Angular packages from v20.3.3 to v20.3.14 to address CVE-2025-66035, a critical security vulnerability involving XSRF token leakage to attacker-controlled domains via protocol-relative URLs. The update includes:
The initial Renovate PR attempted to update only Critical Issues FoundFinding 1: ❌ PR description lacks required sections per Bitwarden standards The PR description is auto-generated by Renovate and missing key information: Suggested PR Description Rewrite## 🎯 Objective
Update Angular packages from v20.3.3 to v20.3.14 to address CVE-2025-66035, a critical security vulnerability that allows XSRF token leakage to attacker-controlled domains via protocol-relative URLs.
## 🔐 Security Impact
**Vulnerability:** CVE-2025-66035 - Credential Leak by App Logic
**Severity:** Critical - Bypasses Angular's built-in CSRF protection
Angular's HttpClient incorrectly treats protocol-relative URLs (`//example.com`) as same-origin requests, automatically adding the XSRF token to the `X-XSRF-TOKEN` header. This allows attackers to capture valid XSRF tokens and perform arbitrary CSRF attacks.
**Patches Applied:**
- Angular 20.3.14 (current)
- Also available in: 19.2.16, 21.0.1
## 📝 Changes
- Updated all `@angular/*` packages to v20.3.14 for consistency
- Updated `@angular/cdk` to v20.2.14
- Updated `@angular/compiler-cli` to v20.3.14
## 🧪 Test Plan
- [x] Lint passes (`npm run lint`)
- [x] Unit tests pass (`npm run test`)
- [x] Integration tests pass (`npm run test:integration`)
- [x] Build succeeds for all targets (GUI + CLI)
## 🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-28902Good Practices Observed
Action Items
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #938 +/- ##
=======================================
Coverage 16.01% 16.01%
=======================================
Files 67 67
Lines 2791 2791
Branches 481 481
=======================================
Hits 447 447
Misses 2306 2306
Partials 38 38 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
|
New Issues (1)Checkmarx found the following issues in this Pull Request
Fixed Issues (2)Great job! The following issues were fixed in this Pull Request
|



This PR contains the following updates:
20.3.3->20.3.14GitHub Vulnerability Alerts
CVE-2025-66035
The vulnerability is a Credential Leak by App Logic that leads to the unauthorized disclosure of the Cross-Site Request Forgery (XSRF) token to an attacker-controlled domain.
Angular's HttpClient has a built-in XSRF protection mechanism that works by checking if a request URL starts with a protocol (
http://orhttps://) to determine if it is cross-origin. If the URL starts with protocol-relative URL (//), it is incorrectly treated as a same-origin request, and the XSRF token is automatically added to theX-XSRF-TOKENheader.Impact
The token leakage completely bypasses Angular's built-in CSRF protection, allowing an attacker to capture the user's valid XSRF token. Once the token is obtained, the attacker can perform arbitrary Cross-Site Request Forgery (CSRF) attacks against the victim user's session.
Attack Preconditions
POST) to a protocol-relative URL (e.g.,//attacker.com) that they control.Patches
Workarounds
Developers should avoid using protocol-relative URLs (URLs starting with
//) in HttpClient requests. All backend communication URLs should be hardcoded as relative paths (starting with a single/) or fully qualified, trusted absolute URLs.Release Notes
angular/angular (@angular/common)
v20.3.14Compare Source
http
v20.3.13Compare Source
v20.3.12Compare Source
v20.3.11Compare Source
common
compiler
core
v20.3.10Compare Source
compiler-cli
migrations
v20.3.9Compare Source
v20.3.7Compare Source
animations
Element.animateexceptions (#64506)compiler
compiler-cli
core
router
v20.3.6Compare Source
core
platform-browser
DomEventsPluginshould always be the last plugin to be called forsupports(). (#50394)v20.3.5Compare Source
compiler-cli
core
animate.leavefunction bindings (#64413)migrations
router
v20.3.4Compare Source
core
migrations
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.