[auto-sec] Consolidate aspire dependency security remediations (75 alerts) - #20032
[auto-sec] Consolidate aspire dependency security remediations (75 alerts)#20032David Pine (IEvangelist) wants to merge 1 commit into
Conversation
|
🚀 Dogfood this PR with:
curl -fsSL https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.sh | bash -s -- 20032Or
iex "& { $(irm https://raw.githubusercontent.com/microsoft/aspire/main/eng/scripts/get-aspire-cli-pr.ps1) } 20032" |
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
🟡 Changes recommended
Extension restore fails on an unavailable mirrored tarball, and the ESM override breaks a CommonJS dependency.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
Consolidates npm security remediations across extension, templates, tests, and playgrounds without application source changes.
Changes:
- Pins patched transitive dependencies through overrides/resolutions.
- Regenerates npm, pnpm, and Yarn lockfiles.
- Updates Next.js and Vitest to patched releases.
File summaries
| File | Description |
|---|---|
extension/package.json |
Adds security resolutions. |
extension/yarn.lock |
Refreshes resolved extension dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.Angular/package-lock.json |
Locks patched Angular dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.Angular/package.json |
Adds Angular dependency overrides. |
playground/AspireWithJavaScript/AspireJavaScript.NodeApp/package-lock.json |
Locks patched Node dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.NodeApp/package.json |
Overrides qs. |
playground/AspireWithJavaScript/AspireJavaScript.React/package-lock.json |
Locks patched React dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.React/package.json |
Adds React dependency overrides. |
playground/AspireWithJavaScript/AspireJavaScript.Vite/package-lock.json |
Locks patched Vite dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.Vite/package.json |
Adds Vite dependency overrides. |
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/npmscript/package.json |
Overrides qs. |
tests/Aspire.Hosting.CodeGeneration.TypeScript.JsTests/package-lock.json |
Locks patched Vitest dependencies. |
tests/Aspire.Hosting.CodeGeneration.TypeScript.JsTests/package.json |
Pins Vitest packages. |
playground/AspireWithJavaScript/AspireJavaScript.Vue/package-lock.json |
Locks patched Vue dependencies. |
playground/AspireWithJavaScript/AspireJavaScript.Vue/package.json |
Adds Vue dependency overrides. |
playground/AspireWithNode/NodeFrontend/package-lock.json |
Locks patched npm graph. |
playground/AspireWithNode/NodeFrontend/package.json |
Aligns npm and pnpm overrides. |
playground/AspireWithNode/NodeFrontend/pnpm-lock.yaml |
Locks patched pnpm graph. |
playground/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json |
Locks patched browser dependencies. |
playground/BrowserTelemetry/BrowserTelemetry.Web/package.json |
Adds browser dependency overrides. |
playground/FoundryAgentEnterprise/frontend/package-lock.json |
Locks patched frontend dependencies. |
playground/FoundryAgentEnterprise/frontend/package.json |
Overrides @humanfs/node. |
playground/JavaAppHost/api/package-lock.json |
Locks patched API dependencies. |
playground/TypeScriptApps/AzureFunctionsSample/TypeScriptApiService/package.json |
Overrides qs. |
playground/TypeScriptApps/RpsArena/arena-frontend/package-lock.json |
Locks patched browser dependencies. |
playground/TypeScriptApps/RpsArena/arena-frontend/package.json |
Adds browser overrides. |
playground/TypeScriptApps/RpsArena/node-player/package-lock.json |
Locks patched qs graph. |
playground/TypeScriptApps/RpsArena/node-player/package.json |
Overrides qs. |
src/Aspire.Cli/Templating/Templates/java-starter/frontend/package-lock.json |
Updates Java starter lockfile. |
src/Aspire.Cli/Templating/Templates/java-starter/frontend/package.json |
Overrides @humanfs/node. |
src/Aspire.Cli/Templating/Templates/py-starter/frontend/package-lock.json |
Updates Python frontend lockfile. |
src/Aspire.Cli/Templating/Templates/py-starter/frontend/package.json |
Overrides @humanfs/node. |
src/Aspire.Cli/Templating/Templates/py-starter/package-lock.json |
Updates Python starter lockfile. |
playground/JavaAppHost/api/package.json |
Adds telemetry and qs overrides. |
playground/JavaAppHost/frontend/package-lock.json |
Updates Java frontend lockfile. |
playground/JavaAppHost/frontend/package.json |
Overrides @humanfs/node. |
playground/PostgresEndToEnd/PostgresEndToEnd.NodeService/package-lock.json |
Locks patched qs graph. |
playground/PostgresEndToEnd/PostgresEndToEnd.NodeService/package.json |
Overrides qs. |
playground/PythonAppHost/frontend/package-lock.json |
Updates Python playground lockfile. |
playground/PythonAppHost/frontend/package.json |
Overrides @humanfs/node. |
playground/TypeScriptAppHost/express-api/package-lock.json |
Locks patched qs graph. |
playground/TypeScriptAppHost/express-api/package.json |
Overrides qs. |
playground/TypeScriptApps/AzureFunctionsSample/TypeScriptApiService/package-lock.json |
Locks patched qs graph. |
src/Aspire.Cli/Templating/Templates/py-starter/package.json |
Overrides @humanfs/node. |
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/package-lock.json |
Updates TypeScript frontend lockfile. |
src/Aspire.Cli/Templating/Templates/ts-starter/frontend/package.json |
Overrides @humanfs/node. |
src/Aspire.Cli/Templating/Templates/ts-starter/package-lock.json |
Updates TypeScript starter lockfile. |
src/Aspire.Cli/Templating/Templates/ts-starter/package.json |
Overrides @humanfs/node. |
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/package-lock.json |
Updates project-template lockfile. |
src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/package.json |
Overrides @humanfs/node. |
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/nextjs/package-lock.json |
Locks patched Next.js graph. |
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/nextjs/package.json |
Updates Next.js and overrides. |
tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/npmscript/package-lock.json |
Locks patched qs graph. |
Review details
Files not reviewed (26)
- playground/AspireWithJavaScript/AspireJavaScript.Angular/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.NodeApp/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.React/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.Vite/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.Vue/package-lock.json: Generated file
- playground/AspireWithNode/NodeFrontend/package-lock.json: Generated file
- playground/AspireWithNode/NodeFrontend/pnpm-lock.yaml: Generated file
- playground/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json: Generated file
- playground/FoundryAgentEnterprise/frontend/package-lock.json: Generated file
- playground/JavaAppHost/api/package-lock.json: Generated file
- playground/JavaAppHost/frontend/package-lock.json: Generated file
- playground/PostgresEndToEnd/PostgresEndToEnd.NodeService/package-lock.json: Generated file
- playground/PythonAppHost/frontend/package-lock.json: Generated file
- playground/TypeScriptAppHost/express-api/package-lock.json: Generated file
- playground/TypeScriptApps/AzureFunctionsSample/TypeScriptApiService/package-lock.json: Generated file
- playground/TypeScriptApps/RpsArena/arena-frontend/package-lock.json: Generated file
- playground/TypeScriptApps/RpsArena/node-player/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/java-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/py-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/py-starter/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/ts-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/ts-starter/package-lock.json: Generated file
- src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/package-lock.json: Generated file
- tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/nextjs/package-lock.json: Generated file
- tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/npmscript/package-lock.json: Generated file
- tests/Aspire.Hosting.CodeGeneration.TypeScript.JsTests/package-lock.json: Generated file
- Files reviewed: 26/53 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill for context-aware, tailored reviews. Learn more in the docs.
…iations Clears 74 of 75 open Dependabot alerts (all npm ecosystem) across 27 manifests via targeted overrides/resolutions + lockfile regeneration. No application source changes. Ecosystem mechanism: - 25 package-lock.json: npm overrides + npm install --package-lock-only - 1 pnpm-lock.yaml (AspireWithNode/NodeFrontend): pnpm.overrides - 1 yarn.lock (extension): resolutions (dnceng public feed preserved) Key bumps: next 16.2.11->16.3.3 (critical), qs 6.16.0, fast-uri 3.1.6, @humanfs/node 0.16.8, browserslist 4.28.7, js-yaml 4.3.2, nanoid 3.3.18, hono 4.13.5, postcss-selector-parser 7.1.3, @opentelemetry/core 2.8.0, sharp 0.35.4, vitest 4.1.11. extension/yarn.lock: pinned browserslist's transitive data-deps to versions cached on the dnceng public feed (baseline-browser-mapping 2.11.20, electron-to-chromium 1.5.420, node-releases 2.0.54) so the anonymous --frozen-lockfile CI install resolves. Deferred (1 alert): decode-uri-component >=0.5.0 in extension/yarn.lock. The 0.5.0 tarball is not cached on the dnceng public feed (anonymous 401) and the CI feed access is anonymous, so pinning it would break the extension build. Kept at the current cached 0.2.2 pending a maintainer regenerating the lock through the authenticated internal feed to prime the cache. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
3f2ecfd to
1f91553
Compare
Tests selector4 / 99 PR test projects · 6 PR jobs · 1 advisory-only target, from 53 changed files. Selected PR test projects (4 / 99)
Selected PR jobs (6)
Advisory workflow impact (1)
How these were chosen — grouped by what changed🔧 📦 affected project 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 📄 🔧 🔧 🧪 🧪 🧪 🧪 Job reasons
Selection computed for commit |
There was a problem hiding this comment.
🔵 Needs a closer look
The broad multi-manager lockfile refresh and feed-sensitive extension restore require final CI and human validation.
Review details
Files not reviewed (26)
- playground/AspireWithJavaScript/AspireJavaScript.Angular/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.NodeApp/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.React/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.Vite/package-lock.json: Generated file
- playground/AspireWithJavaScript/AspireJavaScript.Vue/package-lock.json: Generated file
- playground/AspireWithNode/NodeFrontend/package-lock.json: Generated file
- playground/AspireWithNode/NodeFrontend/pnpm-lock.yaml: Generated file
- playground/BrowserTelemetry/BrowserTelemetry.Web/package-lock.json: Generated file
- playground/FoundryAgentEnterprise/frontend/package-lock.json: Generated file
- playground/JavaAppHost/api/package-lock.json: Generated file
- playground/JavaAppHost/frontend/package-lock.json: Generated file
- playground/PostgresEndToEnd/PostgresEndToEnd.NodeService/package-lock.json: Generated file
- playground/PythonAppHost/frontend/package-lock.json: Generated file
- playground/TypeScriptAppHost/express-api/package-lock.json: Generated file
- playground/TypeScriptApps/AzureFunctionsSample/TypeScriptApiService/package-lock.json: Generated file
- playground/TypeScriptApps/RpsArena/arena-frontend/package-lock.json: Generated file
- playground/TypeScriptApps/RpsArena/node-player/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/java-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/py-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/py-starter/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/ts-starter/frontend/package-lock.json: Generated file
- src/Aspire.Cli/Templating/Templates/ts-starter/package-lock.json: Generated file
- src/Aspire.ProjectTemplates/templates/aspire-ts-cs-starter/frontend/package-lock.json: Generated file
- tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/nextjs/package-lock.json: Generated file
- tests/Aspire.Cli.EndToEnd.Tests/Fixtures/JsPublish/npmscript/package-lock.json: Generated file
- tests/Aspire.Hosting.CodeGeneration.TypeScript.JsTests/package-lock.json: Generated file
- Files reviewed: 26/53 changed files
- Comments generated: 0 new
- Review effort level: Balanced
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
|
Retrying the failed CI jobs for this pull request from the CI run attempt. The rerun is being tracked in the rerun attempt. |
[auto-sec] aspire dependency security consolidation
Canonical
automated-securityremediation PR for microsoft/aspire. Converges the repo's open Dependabot alerts into a single change set. No application source changes — only lockfiles plus minimal, same-majoroverrides/resolutions.Alerts addressed
Clears 74 of 75 open Dependabot alerts (all npm ecosystem): 2 critical, 28 high, 44 moderate, 1 low. 1 deferred (see below).
Mechanism by manifest kind
package-lock.jsonoverrides+npm install --package-lock-onlypnpm-lock.yaml(AspireWithNode/NodeFrontend)pnpm.overrides+pnpm installyarn.lock(extension)resolutions+yarn install(dnceng public feed)Key version bumps
extension/yarn.lock feed handling
The VS Code
extensionresolves yarn deps from the dnceng public Azure Artifacts feed, and CI runsyarn install --frozen-lockfileagainst it anonymously. Only versions already cached on that feed are anonymously downloadable. To keep the frozen install green, browserslist's transitive data-deps are pinned to the feed's cached versions (all satisfy browserslist@4.28.7's caret ranges):Deferred alert (1)
decode-uri-component ≥ 0.5.0 in
extension/yarn.lock(moderate). The0.5.0tarball is not cached on the dnceng public feed (anonymous request returns401); since CI accesses the feed anonymously, pinning it would break the extension build. Left at the current cached0.2.2. Unblock: a maintainer with authenticated access to the internal feed regeneratesextension/yarn.lock(which primes the cache), after which0.5.0becomes anonymously available and this alert clears. Every other extension alert (qs, fast-uri, js-yaml, @humanfs/node, browserslist) is remediated.Verification
Static check of every alert's installed version in the regenerated lockfiles vs first-patched: 74/75 cleared, 1 deferred as above. No private-feed URLs leaked; local
yarn install --frozen-lockfileagainst dnceng passes.Superseded / tracked Dependabot PRs
Closed once this canonical PR is green and merged (closure gate): #19513, #19844, #19845, #19863.
Out of scope (non-npm): #19852 (GitHub Actions), #19075 (Maven).
Idempotency
Branch
dapire/security-deps/aspire-npm-lockfilesfrom latestupstream/main. Labelautomated-security. Prefix[auto-sec].