Skip to content

chore(security): patch 11 Dependabot alerts - #1905

Open
PMerlet wants to merge 2 commits into
mainfrom
security/2026-09-17
Open

PMerlet wants to merge 2 commits into
mainfrom
security/2026-09-17

Conversation

@PMerlet

@PMerlet PMerlet commented Sep 17, 2026

Copy link
Copy Markdown
Member

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

Summary

11 fixed, 1 ignored, 1 deferred, 2 resolutions added, 0 resolutions removed, 5 could-not-auto-fix. | label: 🔒 security applied

Fixed

Done Alert Package Ecosystem From → To Severity What was bumped
- [ ] #509 multer npm 2.2.0 → 2.4.0 high Scoped resolution **/@nestjs/platform-express/multer: ^2.3.0 (only reached via _example@nestjs/platform-express)
- [ ] #514 joi npm 17.13.4 → 17.13.8 low Direct dep of @forestadmin/forest-cloud (^17.13.4^17.13.6) + resolution **/forest-cli/joi bumped
- [ ] #515 joi npm 17.13.4 → 17.13.8 low Closed by the same joi bump as #514
- [ ] #517 hono npm 4.13.3 → 4.13.8 medium Scoped resolution **/@modelcontextprotocol/sdk/hono: ^4.13.5 (only reached via @modelcontextprotocol/sdk)
- [ ] #518 hono npm 4.13.3 → 4.13.8 medium Closed by the same hono resolution as #517
- [ ] #519 hono npm 4.13.3 → 4.13.8 medium Closed by the same hono resolution as #517
- [ ] #520 js-yaml npm 4.3.1 → 4.3.2 high Existing scoped js-yaml resolutions bumped from ^4.3.1 to ^4.3.2 (lerna, cosmiconfig, eslint, @eslint/eslintrc, @semrel-extra/topo, @hey-api/json-schema-ref-parser), plus new **/@redocly/openapi-core/js-yaml: ^4.3.2 for the redoc chain
- [ ] #521 js-yaml npm 3.15.1 → 3.15.2 high Existing scoped js-yaml@3.x resolutions bumped from ^3.15.1 to ^3.15.2 (@oclif/core, @istanbuljs/load-nyc-config)
- [ ] #522 multer npm 2.2.0 → 2.4.0 high Closed by the same multer resolution as #509
- [ ] #523 multer npm 2.2.0 → 2.4.0 low Closed by the same multer resolution as #509
- [ ] #524 multer npm 2.2.0 → 2.4.0 high Closed by the same multer resolution as #509

Ignored

Dismissed Alert Package Reason
- [ ] #516 adm-zip No upstream patch exists yet (first_patched_version is null in the advisory). Direct dep of @forestadmin/forest-cloud at ^0.6.0; nothing to bump to.

Deferred

Alert Reason
#525 Opened less than 7 days ago (2026-09-10) — deferred to the next run per the age gate.

Resolutions added

Alert(s) Package + pin Parent chain tried Why the bump wasn't viable Form
#517, #518, #519 hono: ^4.13.5 @forestadmin/ai-proxy@modelcontextprotocol/sdk@^1.28.0hono@^4.11.4 The SDK's semver range (^4.11.4) already admits 4.13.5; the lockfile just needed to be pushed forward. No parent bump would move it — the constraint is upstream lockfile inertia, not an SDK dep range. Scoped: **/@modelcontextprotocol/sdk/hono
#509, #522, #523, #524 multer: ^2.3.0 example (packages/_example) → @nestjs/platform-express@^11.1.24multer@2.2.0 @nestjs/platform-express pins multer to a specific 2.x version internally; no ancestor bump within Nest 11.x pulls the patched sub-dep. _example intentionally pins Nest to demo backward compatibility, so a resolution keeps _example unchanged. Scoped: **/@nestjs/platform-express/multer

Resolutions removed

None — this run did not identify stale or redundant entries. (Not audited exhaustively; deferred to a future hygiene pass.)

Could not auto-fix

Alert Package Attempted Observed failure
#485 sanitize-html Bumped @forestadmin/agent-bff direct dep 2.17.5 → 2.17.7. The BFF integration tests (packages/agent/test/bff/embedded-bff.e2e.test.ts) failed with Must use import to load ES Module: node_modules/sanitize-html/node_modules/htmlparser2/dist/index.jssanitize-html@2.17.6+ requires htmlparser2@^12 which is ESM-only, and the affected Jest suite runs in CJS mode. Fixing this requires reconfiguring the agent package's Jest ESM setup — out of scope for a security bump. Bump reverted.
#487 @faker-js/faker Bumped @forestadmin/datasource-demo-fintech direct dep ^9.0.0 → ^10.5.0. packages/datasource-demo-fintech/test/index.test.ts failed with SyntaxError: Cannot use import statement outside a module@faker-js/faker@10.x is ESM-only, and the package's Jest config resolves it via the CJS loader. Fixing this requires reconfiguring Jest / ts-jest for ESM in that workspace — out of scope for a security bump. Bump reverted. Note: usage in src/seed/utils.ts is limited to faker.number.* and faker.helpers.arrayElement/arrayElements/shuffle, none of which touches the vulnerable helpers.fake API — the actual exploit is not reachable from our code.
#492 sanitize-html Same as #485. Same failure as #485. Bump reverted.
#507 sanitize-html Same as #485sanitize-html@2.17.6 (the minimum patched version) already pulls in htmlparser2@^12. Same failure as #485. Bump reverted.
#508 sanitize-html Same as #485. Same failure as #485. Bump reverted.

Risks

  • joi 17.13.4 → 17.13.8 is a minor+patch bump; two prototype-pollution fixes (object().rename with a template target; __proto__ key in custom messages). No behavior change for typical validation code.
  • multer 2.2.0 → 2.4.0 upgrades three DoS-hardening patches within Nest's platform-express chain. _example is the only consumer.
  • hono 4.13.3 → 4.13.8 is a patch-level chain of fixes (query fragment parsing, parseBody nesting bound, toSSG path traversal). MCP SDK's own range already permits it.
  • js-yaml 4.3.1 → 4.3.2 and 3.15.1 → 3.15.2 is a patch-level fix for maxTotalMergeKeys CPU cost on empty merge sources. Behavior change is limited to inputs that were already pathological.

Manual testing

Covered by CI.

Validation

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

…s/faker bumps (ESM-only sub-deps break Jest CJS tests)
@PMerlet PMerlet changed the title chore(security): patch 16 Dependabot alerts chore(security): patch 11 Dependabot alerts Sep 17, 2026
@qltysh

qltysh Bot commented Sep 17, 2026

Copy link
Copy Markdown

Qlty


Coverage Impact

This PR will not change total coverage.

🚦 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.

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