chore: fix dependency vulnerabilities (S360 + Dependabot + npm audit) - #1433
Jayanth Reddy Bujula (jbujula) merged 3 commits into
Conversation
Resolves the S360 SDL action item 6014425 (jsdiff parsePatch DoS/ReDoS, GHSA-73rr-hh4g-fpgx), patched in jsdiff 8.0.3. Lockfile resolves to 8.0.4. Build passes; local mocha suite is blocked by a pre-existing Node 24 TypeScript-loader issue present on origin/main, unrelated to this change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: de0407b8-fb71-416c-8f0c-d03c0a7e0ef7
Fixed: - tar ^7.5.16 -> ^7.5.22 (critical: GHSA-w8wr-v893-vjvp, GHSA-23hp-3jrh-7fpw, GHSA-8x88-c5mf-7j5w, GHSA-gvwx-54wh-qm9j, GHSA-r292-9mhp-454m) - postcss ^8.5.15 -> ^8.5.25 (high: GHSA-r28c-9q8g-f849, GHSA-fxqj-rqcc-2cmp) - ip-address ^10.2.0 -> ^10.3.1 (high: GHSA-mwp4-54f8-5fhr, GHSA-4xrf-jv44-h6hh, GHSA-22jq-vg5j-6vgg) - js-yaml ^4.2.0 -> ^4.3.0 (high: GHSA-52cp-r559-cp3m / CVE-2025-64718, S360 6587259) - adm-zip ^0.5.16 -> ^0.6.0 (high: GHSA-xcpc-8h2w-3j85) - undici ^6.24.0 -> ^6.28.0 (moderate: GHSA-8xcm-r25x-g524, GHSA-m8rv-5g2x-5cg5, GHSA-v3r7-h72x-cjcm) - brace-expansion v5 ^5.0.6 -> ^5.0.8, v2 ^2.0.3 -> ^2.1.3, v1 1.1.15 -> 1.1.17 (high: GHSA-3jxr-9vmj-r5cp, GHSA-mh99-v99m-4gvg; S360 6587257/6587260/6587261) The two bundled brace-expansion copies (under @microsoft/powerplatform-cli-wrapper and minimatch) are inBundle and cannot be reached by npm overrides, so they are patched directly in package-lock.json. Accepted risk (no published fix): - brace-expansion GHSA-rgw5-rvv9-x895 - patched version 5.0.9 is not published; 5.0.8 is the latest available. Remaining "high" audit entries are all transitive paths to this single advisory. - elliptic GHSA-848j-6mx2-7j84 - dev-only, no patched version (permanent accepted risk). Verified: npm run ci -> compile + lint pass. Unit tests fail locally with a pre-existing ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX error under Node v24 that reproduces on the unmodified dependency tree; not caused by this change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 6ac571cd-d84e-4b40-805a-e316a62ed292
Two things reviewers should know before merging1. CI is red repo-wide, and it is not this PR.
The Local verification stands in for CI in the meantime: 2. Overlap with open Dependabot PRs. These were opened independently and overlap with this PR:
Suggested order: merge this PR, then #1437 (and let Dependabot rebase or close the other three). |
|
✅ Update: CI is green. The overlap guidance in the previous comment still stands: #1425 / #1436 / #1439 are superseded by this PR, and #1437 is still needed to close GHSA-rgw5-rvv9-x895. |
The 1ES feed mirror has caught up, so versions that were unreachable last week are
now installable. This closes the advisories that were previously left open.
brace-expansion 2.1.3 -> 2.1.4, 5.0.8 -> 5.0.9, 1.1.17 -> 1.1.18
closes GHSA-rgw5-rvv9-x895 (CVE-2026-69152), previously recorded as unfixable
js-yaml 4.3.0 -> 4.3.1 closes GHSA-5p4m-2wfm-xmqj
nanoid 3.3.11 -> 3.3.17 closes GHSA-2v37-7h3g-55p8 and GHSA-28wg-ghj8-5hjv
the override pinned nanoid to an exact 3.3.11, which was blocking the fix
postcss stays at 8.5.25, which already exceeds the highest patched version (8.5.23).
npm audit high/moderate/critical count is now zero; the 6 remaining low findings are
the documented dev-only elliptic/rewiremock accepted risk.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 6ac571cd-d84e-4b40-805a-e316a62ed292
Update: the remaining advisories are now closed, and the wrapper's own repo is the real root cause1. GHSA-rgw5-rvv9-x895 is fixed after allI previously recorded this as unfixable. That was wrong — it was feed-mirror lag, not a missing upstream fix. The 1ES mirror has since caught up, so
2. The
|
| Pipeline | Repo | Status |
|---|---|---|
PowerPlatform-DPX-Tools-GitHub-BT-Official |
this repo | Fix detected (Jun 22) |
PowerPlatform-DPX-Tools-GitHub-CLI-Wrapper-Official |
microsoft/powerplatform-cli-wrapper |
Fix not detected |
The wrapper's own main lock had node_modules/glob/node_modules/brace-expansion at 5.0.4 — below the 5.0.5 required by CVE-2026-33750. No change in this repo can fix that, because it lives in the wrapper's source tree.
I've opened microsoft/powerplatform-cli-wrapper#506 to fix it there (5.0.4 → 5.0.9, verified on disk, 74 tests passing).
inBundle lock entries are metadata-only patches. The wrapper ships its own node_modules inside the published tarball, so the physical bundled file stays at whatever @microsoft/powerplatform-cli-wrapper@0.1.135 was published with (5.0.6) regardless of what our lock says. The durable fix is #506 landing and a new wrapper version being published and consumed here.
Verification
-
npm ciclean against the patched lock -
npm run ci—compileandlintpass -
unitTestfails withERR_UNSUPPORTED_TYPESCRIPT_SYNTAXon Node v24 — pre-existing, proven earlier by reproducing it on an unmodified tree
Heads-up: one new advisory landed after this PR was verified
No change is needed in this PR. The override here is already a caret range: "nanoid": "^3.3.17"which permits Why it is not refreshed here yet: Pinning This is precisely the recurring-alert pattern the automation in the companion PR is meant to absorb: its weekly |
Summary
Fixes all actionable open security alerts across S360/Component Governance (ADO), GitHub Dependabot, and
npm audit.Originally scoped to GHSA-73rr-hh4g-fpgx (jsdiff); expanded to cover the full open alert set.
Dependencies updated
diff(jsdiff)^5.2.0^8.0.3tar^7.5.16^7.5.22postcss^8.5.15^8.5.25ip-address^10.2.0^10.3.1adm-zip^0.5.16^0.6.0js-yaml^4.2.0^4.3.0undici^6.24.0^6.28.0brace-expansion(v5)^5.0.6^5.0.8brace-expansion(v2)^2.0.3^2.1.3brace-expansion(v1)1.1.151.1.17Note on the lock-file patch
Two
brace-expansioncopies areinBundle: true(bundled inside@microsoft/powerplatform-cli-wrapper, and underminimatch), so npmoverridescannot reach them. They are patched directly inpackage-lock.jsonwith the correctversion/resolved/integrity.npm cire-installs cleanly against the patched lock, confirming the integrity hashes are valid.Known limitations / follow-ups
brace-expansionGHSA-rgw5-rvv9-x895 — not fixable from this branch, but not unfixable in general. Correction to an earlier note on this PR: the patched versions (1.1.18/2.1.4/5.0.9) are published on the public npm registry — Dependabot has already opened Bump brace-expansion from 2.0.3 to 2.1.4 #1437 for2.1.4. They could not be applied here because this machine resolves through the 1ES feed mirror (ms-feed-*.pkgs.visualstudio.com), which still tops out at1.1.17/2.1.3/5.0.8, sonpm installcannot fetch them. Land the Dependabot PRs after this one to close it out. Every remaininghighentry innpm auditis a transitive path to this single advisory; the raw count is inflated by path enumeration, not by new risk.ellipticGHSA-848j-6mx2-7j84 — permanent accepted risk. Dev-only (rewiremock->node-libs-browser->crypto-browserify), no patched version exists.[S360]work items (CVE-2026-13149, CVE-2026-14257, CVE-2026-27903/27904, CVE-2026-59869, GHSA-5c6j-r48x-rmvq) carry only a Component GovernancealertIdwith no package or version in the description, so they could not be mapped to a dependency programmatically. CVE-2026-14257 is thebrace-expansionDoS and is addressed here; the rest need to be resolved against the CG portal manually.Test plan
npm installcleannpm ciclean against the patched lock filenpm audit— no new vulnerabilities introduced; all fixable advisories resolvednpm run ci—compileandlintpassPA_BT_ORG_PASSWORD)🤖 Generated with GitHub Copilot CLI