fix(deps): patch 10 Dependabot alerts (Angular XSS, undici, ip-address) - #104
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
@angular/core@angular/compiler@angular/commonundiciundicitypeundiciundiciCache-Controlundiciip-addressip-addressChanges to
package.json@angular/*entries:^21.2.17→^21.2.19(runtime deps andbuild/cli/compiler-cli). The full set has to move together because these packages declare exact peer ranges on one another — bumping onlycore/common/compilerfails to resolve.overrides.undici:^7.28.0→^7.29.0overrides.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:
optionalDependenciespreserved — a first regeneration attempt silently dropped the pinned@emnapi/core/@emnapi/runtimeentries; the committed lock retains both at 1.11.2 (701 packages).globoverride intact — top-level hoisting moved to 7.2.3, butnpm ls globconfirms 7.2.3 serves onlykarma(asoverrides.karma.globintends) while thepacote/cacachechain still gets 10.5.0 nested. No consumer of^10.5.0resolves to 7.2.3.Verification
npm audit→ 0 vulnerabilitiesnpm ci→ succeeds (exit 0), lockfile in sync withpackage.jsonnpm run build(production) → succeedsnpm run test:ci→ 39/39 passingNo 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