Skip to content

chore(security): bump fast-uri, undici, vitest to fix CVEs - #815

Merged
vatsalparikh merged 3 commits into
mainfrom
security-deps-updates
Sep 10, 2026
Merged

chore(security): bump fast-uri, undici, vitest to fix CVEs#815
vatsalparikh merged 3 commits into
mainfrom
security-deps-updates

Conversation

@vatsalparikh

Copy link
Copy Markdown
Contributor

Summary

Bumps dependencies flagged by the Mend Security Check to their patched versions:

Package From To Reason
fast-uri (pnpm override) ^3.1.6 ^3.1.7 CVE-2026-84394, CVE-2026-84292 (High, 7.5)
undici (pnpm override) ^7.29.0 ^7.29.1 8 CVEs incl. CVE-2026-19534, CVE-2026-84961 (High, 7.5/7.4)
vitest (catalog) ^3.2.6 ^4.1.11 CVE-2026-84373 (Medium, 5.9) — also brings @vitest/mocker@4.1.11
@vitest/coverage-v8 (catalog) ^3.2.6 ^4.1.11 tracks vitest major
@vitest/ui (root devDep) 3.2.6 4.1.11 peer-pins exact vitest version

Vitest 4 migration notes

  • vi.restoreAllMocks() no longer resets plain vi.fn() mocks (spies only) in vitest 4. One test file (oidc-client/src/lib/authorize.request.utils.test.ts) relied on the old behavior; fixed with an explicit vi.clearAllMocks() in beforeEach.
  • @effect/vitest@0.27.x peer-declares vitest: ^3.2.0 (no v4 range published yet). All tests pass under vitest 4 — it.effect works — but the peer range is not yet updated upstream. Flagging for awareness.
  • vitest-canvas-mock@1.1.3 explicitly supports ^4.0.0. No change needed.

Verification

  • pnpm nx run-many -t typecheck lint build --no-agents — passes
  • pnpm nx run-many -t test --no-agents — all unit tests pass (only the 1-file vitest-4 fix above was needed)
  • API reports unchanged

Context

The fix-import-order PR (#683) previously carried the fast-uri/undici bumps; this PR is the standalone dependency-security PR containing those plus the vitest 4 migration, branched from current main.

Related tracked issues: #731, #775

@changeset-bot

changeset-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: d2117fe

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Sep 8, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 11 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository.

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 5b4d93fd-dd9e-464b-8f55-9a6f3a59cd72

📥 Commits

Reviewing files that changed from the base of the PR and between 862869d and d2117fe.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (20)
  • .nx/workflows/dynamic-changesets.yml
  • e2e/am-mock-api/.eslintrc.json
  • e2e/am-mock-api/eslint.config.mjs
  • e2e/am-mock-api/project.json
  • e2e/mock-api-v2/package.json
  • eslint.config.mjs
  • package.json
  • packages/davinci-client/package.json
  • packages/device-client/package.json
  • packages/device-client/vite.config.ts
  • packages/journey-client/package.json
  • packages/journey-client/vite.config.ts
  • packages/oidc-client/package.json
  • packages/oidc-client/src/lib/authorize.request.utils.test.ts
  • packages/recognize/vitest.config.mts
  • pnpm-workspace.yaml
  • tools/interface-mapping-validator/package.json
  • tools/user-scripts/package.json
  • vitest.config.ts
  • vitest.workspace.ts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@nx-cloud

nx-cloud Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

View your CI Pipeline Execution ↗ for commit d2117fe

Command Status Duration Result
nx run-many -t build --no-agents ✅ Succeeded <1s View ↗
nx affected -t build lint test typecheck e2e-ci ✅ Succeeded 1m 1s View ↗

💡 Verify your cache is correct by running tasks in a sandbox. Read docs ↗


☁️ Nx Cloud last updated this comment at 2026-09-10 19:51:35 UTC

@pkg-pr-new

pkg-pr-new Bot commented Sep 8, 2026

Copy link
Copy Markdown

Open in StackBlitz

@forgerock/davinci-client

pnpm add https://pkg.pr.new/@forgerock/davinci-client@815

@forgerock/device-client

pnpm add https://pkg.pr.new/@forgerock/device-client@815

@forgerock/journey-client

pnpm add https://pkg.pr.new/@forgerock/journey-client@815

@forgerock/oidc-client

pnpm add https://pkg.pr.new/@forgerock/oidc-client@815

@forgerock/protect

pnpm add https://pkg.pr.new/@forgerock/protect@815

@forgerock/sdk-types

pnpm add https://pkg.pr.new/@forgerock/sdk-types@815

@forgerock/sdk-utilities

pnpm add https://pkg.pr.new/@forgerock/sdk-utilities@815

@forgerock/iframe-manager

pnpm add https://pkg.pr.new/@forgerock/iframe-manager@815

@forgerock/sdk-logger

pnpm add https://pkg.pr.new/@forgerock/sdk-logger@815

@forgerock/sdk-oidc

pnpm add https://pkg.pr.new/@forgerock/sdk-oidc@815

@forgerock/sdk-request-middleware

pnpm add https://pkg.pr.new/@forgerock/sdk-request-middleware@815

@forgerock/storage

pnpm add https://pkg.pr.new/@forgerock/storage@815

commit: d2117fe

@codecov-commenter

codecov-commenter commented Sep 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.29%. Comparing base (eafe277) to head (d2117fe).
⚠️ Report is 137 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main     #815       +/-   ##
===========================================
+ Coverage   18.07%   96.29%   +78.22%     
===========================================
  Files         155        1      -154     
  Lines       24398       81    -24317     
  Branches     1203       17     -1186     
===========================================
- Hits         4410       78     -4332     
+ Misses      19988        3    -19985     

see 155 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

Deployed 1c8ca4f to https://ForgeRock.github.io/ping-javascript-sdk/pr-815/1c8ca4f3013a41142dec6ef9b51338cda9b5d7af branch gh-pages in ForgeRock/ping-javascript-sdk

@github-actions

github-actions Bot commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

📦 Bundle Size Analysis

📦 Bundle Size Analysis

🆕 New Packages

🆕 @forgerock/device-client - 0.0 KB (new)
🆕 @forgerock/device-client - 10.0 KB (new)
🆕 @forgerock/journey-client - 0.0 KB (new)
🆕 @forgerock/journey-client - 93.8 KB (new)

📊 Minor Changes

📈 @forgerock/sdk-types - 9.1 KB (+0.0 KB)

➖ No Changes

@forgerock/recognize - 4284.4 KB
@forgerock/oidc-client - 35.5 KB
@forgerock/storage - 1.5 KB
@forgerock/iframe-manager - 3.2 KB
@forgerock/sdk-logger - 1.6 KB
@forgerock/sdk-oidc - 5.7 KB
@forgerock/sdk-request-middleware - 4.6 KB
@forgerock/sdk-utilities - 18.8 KB
@forgerock/protect - 144.6 KB
@forgerock/davinci-client - 59.7 KB


15 packages analyzed • Baseline from latest main build

Legend

🆕 New package
🔺 Size increased
🔻 Size decreased
➖ No change

ℹ️ How bundle sizes are calculated
  • Current Size: Total gzipped size of all files in the package's dist directory
  • Baseline: Comparison against the latest build from the main branch
  • Files included: All build outputs except source maps and TypeScript build cache
  • Exclusions: .map, .tsbuildinfo, and .d.ts.map files

🔄 Updated automatically on each push to this PR

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

nx-cloud[bot]

This comment was marked as outdated.

@nx-cloud nx-cloud Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Important

At least one additional CI pipeline execution has run since the conclusion below was written and it may no longer be applicable.

Nx Cloud is proposing a fix for your failed CI:

We restored reuseExistingServer: true in both davinci-suites and journey-suites playwright configs to fix the port 5829 conflict that was causing all e2e-ci tasks to fail. The PR changed davinci-suites to reuseExistingServer: !process.env.CI (false in CI) expecting the "..." nx.json serialization to prevent concurrent server starts, but that serialization only applies within a single project — the two suites can still run concurrently and race for port 5829. With reuseExistingServer: true restored, concurrent tasks across both suites safely share whichever server is already listening on the port.

Suggested Fix changes
diff --git a/e2e/davinci-suites/playwright.config.ts b/e2e/davinci-suites/playwright.config.ts
index 19e6fa5..5527bee 100644
--- a/e2e/davinci-suites/playwright.config.ts
+++ b/e2e/davinci-suites/playwright.config.ts
@@ -37,7 +37,7 @@ const config: PlaywrightTestConfig = {
       command: 'pnpm nx serve @forgerock/davinci-app',
       port: 5829,
       ignoreHTTPSErrors: true,
-      reuseExistingServer: !process.env.CI,
+      reuseExistingServer: true,
       cwd: workspaceRoot,
     },
   ].filter(Boolean),
diff --git a/e2e/journey-suites/playwright.config.ts b/e2e/journey-suites/playwright.config.ts
index 85229ca..be8aa3b 100644
--- a/e2e/journey-suites/playwright.config.ts
+++ b/e2e/journey-suites/playwright.config.ts
@@ -34,14 +34,14 @@ const config: PlaywrightTestConfig = {
       command: 'pnpm nx serve @forgerock/journey-app',
       port: 5829,
       ignoreHTTPSErrors: true,
-      reuseExistingServer: !process.env.CI,
+      reuseExistingServer: true,
       cwd: workspaceRoot,
     },
     {
       command: 'pnpm nx serve am-mock-api',
       port: 9443,
       ignoreHTTPSErrors: true,
-      reuseExistingServer: !process.env.CI,
+      reuseExistingServer: true,
       cwd: workspaceRoot,
     },
   ].filter(Boolean),

Warning

⚠️ Apply was attempted but failed: The file 'e2e/davinci-suites/playwright.config.ts' has been modified since the fix was generated.

Apply fix via Nx Cloud  Reject fix via Nx Cloud


Or Apply changes locally with:

npx nx-cloud apply-locally YoR7-zbee

Apply fix locally with your editor ↗   View interactive diff ↗



🎓 Learn more about Self-Healing CI on nx.dev

@vatsalparikh
vatsalparikh marked this pull request as ready for review September 10, 2026 18:44
Both e2e suites' apps share port 5829 (CORS prevents distinct ports), so
atomized e2e-ci tasks from both suites could interleave on the same Nx
Cloud agent. A leaked dev server would then be wrongly reused across
suites. Assignment rules isolate each suite's e2e-ci tasks to dedicated
agents: davinci/journey e2e tasks now route to isolated agent pools
(using the linux-medium-js template, as custom template names are not
supported — the rules still create separate per-suite agent allocations).
@vatsalparikh
vatsalparikh merged commit 741f966 into main Sep 10, 2026
10 checks passed
@vatsalparikh
vatsalparikh deleted the security-deps-updates branch September 10, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants