Skip to content

chore(security): patch 7 Dependabot alerts - #2073

Open
PMerlet wants to merge 1 commit into
mainfrom
security/2026-11-09
Open

PMerlet wants to merge 1 commit into
mainfrom
security/2026-11-09

Conversation

@PMerlet

@PMerlet PMerlet commented Nov 9, 2026 •

Copy link
Copy Markdown
Member

👋 First-level support: see Handling automated security PRs for how to triage and merge this PR.

Summary

7 fixed, 1 ignored, 4 deferred, 1 resolution added, 0 resolutions removed, 0 could-not-auto-fix. | label: 🔒 security applied

Fixed

Done Alert Package Ecosystem From → To Severity Change
- [ ] #679 qs npm 6.16.0 → 6.17.1 medium bumped root resolutions.qs ^6.16.0 → ^6.16.1; mirrored in all 3 docker build-deps-manifest.js
- [ ] #689 systeminformation npm 5.33.15 → 5.33.19 high added **/systeminformation: ^5.33.16 to packages/agent-bff/docker/build-deps-manifest.js RESOLUTIONS
- [ ] #691 @hono/node-server npm 2.1.1 → 2.1.6 medium added scoped root resolution **/@modelcontextprotocol/sdk/@hono/node-server: ^2.1.3
- [ ] #692 glob npm 10.5.0 → 14.0.4 medium added **/rimraf: ^6.1.4 to packages/agent-bff/docker/build-deps-manifest.js (rimraf 6 pulls glob ^14.0.3)
- [ ] #694 glob npm 10.5.0 → 14.0.4 medium added **/rimraf: ^6.1.4 to packages/gateway/docker/build-deps-manifest.js
- [ ] #696 glob npm 10.5.0 → 14.0.4 medium added **/rimraf: ^6.1.4 to packages/workflow-executor/docker/build-deps-manifest.js
- [ ] #701 joi npm 17.13.8 → 17.13.9 high bumped joi to ^17.13.9 in agent-bff, forest-cloud, mcp-server package.json; also root **/forest-cli/joi to ^17.13.9

Ignored

Dismissed Alert Package Reason
- [ ] #688 deepmerge No upstream patch exists yet (first_patched_version is null).

Deferred

Alerts opened less than 7 days before this run (created 2026-11-05, cutoff 2026-11-02 12:04 UTC) — all for the same minimatch advisory, will be picked up by the next run:

  • #702 minimatch (packages/agent-bff/docker/deps/yarn.lock)
  • #703 minimatch (packages/gateway/docker/deps/yarn.lock)
  • #704 minimatch (packages/workflow-executor/docker/deps/yarn.lock)
  • #705 minimatch (root yarn.lock)

Resolutions added

Alert Package + range Parent chain tried Why the bump wasn't viable Form
#691 @hono/node-server: ^2.1.3 @forestadmin/ai-proxy → @modelcontextprotocol/sdk → @hono/node-server @modelcontextprotocol/sdk@1.32.1 pins @hono/node-server: ^1.19.9 || ^2.0.5; no parent dep publishes a range that excludes 2.1.1. scoped (**/@modelcontextprotocol/sdk/@hono/node-server)
#689 systeminformation: ^5.33.16 in agent-bff docker/deps OpenTelemetry auto-instrumentations (sdk-node) → systeminformation Docker-image-only closure; parents are pinned OTel releases we don't control. unconditional (within the docker/deps RESOLUTIONS, which is already isolated)
#692, #694, #696 rimraf: ^6.1.4 in each docker/deps @opentelemetry/resource-detector-gcp → gcp-metadata → gaxios@7.1.3 → rimraf@^5.0.1 → glob@^10 glob ≥9.0.0 ≤14.0.1 is all vulnerable; no glob version satisfies rimraf 5's ^10 AND the patched range. Bumping rimraf to ^6 pulls glob ^14.0.3 cleanly. unconditional (within docker/deps RESOLUTIONS)

Resolutions removed

None in this run. Existing root resolutions entries were spot-checked (all pinned-package chains still resolve in the tree). A deeper per-entry redundancy audit was deferred — each was added for a prior security bump and removing them unverified risks regressing a closed alert.

Risks

  • qs 6.16.0 → 6.17.1: patch + minor bump within same major. 6.17.x changelog is small bug fixes; no breaking changes to the parse / stringify surface we use via express / body-parser.
  • joi 17.13.8 → 17.13.9: single-patch bump; changelog is only the DoS fix for string().email({ multiple: true }). We don't use multiple: true in any workspace, so no behavior change beyond the patched vuln.
  • @hono/node-server 2.1.1 → 2.1.6: patch bumps within 2.x. Fix is middleware path decoding for serveStatic; our usage is through @modelcontextprotocol/sdk, not serveStatic directly.
  • glob 10.5.0 → 14.0.4 (docker/deps only) and rimraf 5 → 6 (docker/deps only): major jumps, but both only inside the isolated docker runtime deps. Pulled via gaxios / OpenTelemetry's GCP resource detector. gaxios uses rimraf(path) for temp cleanup — API compatible with rimraf 6. Node base image is 22-bookworm-slim (rimraf 6 supports Node ≥18).
  • systeminformation 5.33.15 → 5.33.19 (agent-bff docker/deps only): patch-level bump of an OTel-pulled lib that the image doesn't call directly; smoke test covers boot.
  • ESLint pre-existing errors in packages/*/docker/build-deps-manifest.js (require / no-continue / padding / no-use-before-define) are unrelated to this run's edits and are not covered by CI lint (the root lint script runs eslint src test per workspace, not docker/); left in place per phase 6 instructions.

Manual testing

Covered by CI.

Validation

✅ CI green (Actions + commit statuses; app-based checks not monitored)

Fixes Dependabot alerts #679 (qs), #689 (systeminformation),
#691 (@hono/node-server), #692/#694/#696 (glob), and #701 (joi).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@qltysh

qltysh Bot commented Nov 9, 2026

Copy link
Copy Markdown

Qlty


Coverage Impact

⬆️ Merging this pull request will increase total coverage on main by 0.1%.

🚦 See full report on Qlty Cloud »

🛟 Help
  • Diff Coverage: Coverage for added or modified lines of code (excludes deleted files). Learn more.

  • Total Coverage: Coverage for the whole repository, calculated as the sum of all File Coverage. Learn more.

  • File Coverage: Covered Lines divided by Covered Lines plus Missed Lines. (Excludes non-executable lines including blank lines and comments.)

    • Indirect Changes: Changes to File Coverage for files that were not modified in this PR. Learn more.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant