Skip to content

fix(deps): patch 10 Dependabot alerts (Angular XSS, undici, ip-address) - #104

Merged
GaetanOff merged 1 commit into
developfrom
fix/dependabot-angular-undici-ip-address
Aug 4, 2026
Merged

fix(deps): patch 10 Dependabot alerts (Angular XSS, undici, ip-address)#104
GaetanOff merged 1 commit into
developfrom
fix/dependabot-angular-undici-ip-address

Conversation

@GaetanOff

Copy link
Copy Markdown
Owner

Summary

Closes all 10 open Dependabot alerts on the repository (2 high-severity XSS/cache-poisoning in Angular, 1 high in undici, 7 medium).

Alerts resolved

Alert Severity Package Advisory Fix
#249 high @angular/core GHSA-jj27-h5hq-8x99 — i18n XSS via event-handler attributes 21.2.19
#248 high @angular/compiler GHSA-jj27-h5hq-8x99 — i18n XSS via event-handler attributes 21.2.19
#247 high @angular/common GHSA-jhpw-976m-542j — HttpTransferCache cache-key ambiguity → cross-request response reuse / state poisoning 21.2.19
#253 high undici GHSA-4cwx-7wf7-3272 — cross-user disclosure + parse-time crash via degenerate private cache directives 7.29.0
#256 medium undici GHSA-m8rv-5g2x-5cg5 — CRLF injection via blob-like body type 7.29.0
#255 medium undici GHSA-v3r7-h72x-cjcm — cookie attribute injection 7.29.0
#254 medium undici GHSA-jr45-8vmc-qm54 — disclosure via whitespace in Cache-Control 7.29.0
#252 medium undici GHSA-8xcm-r25x-g524 — downstream response desync via retry interceptor 7.29.0
#251 medium ip-address GHSA-4xrf-jv44-h6hh — CIDR suffix suppresses special-use classification, bypassing SSRF checks 10.4.0
#250 medium ip-address GHSA-22jq-vg5j-6vgg — misclassification of IPv4-mapped/NAT64 IPv6 10.4.0

Changes to package.json

  • All 11 @angular/* entries: ^21.2.17^21.2.19 (runtime deps and build/cli/compiler-cli). The full set has to move together because these packages declare exact peer ranges on one another — bumping only core/common/compiler fails to resolve.
  • overrides.undici: ^7.28.0^7.29.0
  • overrides.ip-address: ^10.1.1^10.2.2 (resolves to 10.4.0)

Raising the override floors rather than relying on the lockfile alone keeps the tree from regressing on a future install.

Note on the lockfile diff

The lockfile diff is larger than the 10 packages above (~115 version changes). npm cannot perform the Angular lockstep peer upgrade incrementally against the existing lock, so the lockfile was regenerated from scratch. Every incidental bump sits inside the semver ranges already declared in package.json — no range was widened to accommodate it.

Two things were explicitly checked in the regenerated tree:

  • optionalDependencies preserved — a first regeneration attempt silently dropped the pinned @emnapi/core / @emnapi/runtime entries; the committed lock retains both at 1.11.2 (701 packages).
  • glob override intact — top-level hoisting moved to 7.2.3, but npm ls glob confirms 7.2.3 serves only karma (as overrides.karma.glob intends) while the pacote/cacache chain still gets 10.5.0 nested. No consumer of ^10.5.0 resolves to 7.2.3.

Verification

  • npm audit0 vulnerabilities
  • npm ci → succeeds (exit 0), lockfile in sync with package.json
  • npm run build (production) → succeeds
  • npm run test:ci39/39 passing

No application source was touched. The pre-existing bundle-budget warning (531.96 kB vs 500 kB) is unchanged and non-fatal.

🤖 Generated with Claude Code

Resolves all 10 open Dependabot alerts on the repository.

Angular 21.2.17 -> 21.2.19 (alerts #247, #248, #249)
- GHSA-jj27-h5hq-8x99 (high): i18n XSS via event-handler attributes
  (@angular/core, @angular/compiler)
- GHSA-jhpw-976m-542j (high): cache-key ambiguity in HttpTransferCache
  leading to cross-request response reuse and state poisoning
  (@angular/common)
The whole @angular/* set moves together because these packages carry
exact peer ranges on one another.

undici -> 7.29.0 override floor (alerts #252-#256)
- GHSA-4cwx-7wf7-3272 (high): cross-user info disclosure and parse-time
  crash via degenerate private cache directives
- GHSA-m8rv-5g2x-5cg5: CRLF injection via blob-like body type
- GHSA-v3r7-h72x-cjcm: cookie attribute injection
- GHSA-jr45-8vmc-qm54: disclosure via whitespace in Cache-Control
- GHSA-8xcm-r25x-g524: response desync via retry interceptor

ip-address -> 10.2.2 override floor, resolves to 10.4.0 (alerts #250, #251)
- GHSA-4xrf-jv44-h6hh: CIDR suffix suppresses special-use
  classification, bypassing SSRF and trust-boundary checks
- GHSA-22jq-vg5j-6vgg: misclassification of IPv4-mapped/NAT64 IPv6

The lockfile was regenerated because npm cannot perform the Angular
lockstep peer upgrade incrementally; the incidental transitive bumps all
sit inside the semver ranges already declared in package.json.

Verified: npm audit reports 0 vulnerabilities, npm ci succeeds,
production build succeeds, 39/39 unit tests pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@GaetanOff
GaetanOff merged commit c1e3189 into develop Aug 4, 2026
1 check passed
@GaetanOff
GaetanOff deleted the fix/dependabot-angular-undici-ip-address branch August 4, 2026 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant