Skip to content

fix: Patch high-severity advisories in the blog CMS - #35

Merged
ecv merged 1 commit into
mainfrom
fix/high-advisories
Oct 28, 2026
Merged

ecv merged 1 commit into
mainfrom
fix/high-advisories

Conversation

@ecv

@ecv ecv commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

The blog CMS has 10 open high-severity Dependabot alerts, and this clears 9 of them. High-severity npm audit findings drop from 33 to 10, and every one left traces to the zod v3 copy that koa-session and koa-body need until upstream supports zod v4.

Supersedes #29, rebuilt on main so the CI build from #32 runs on it.

Test plan

The Strapi SDK pins several transitive dependencies to exact vulnerable
versions, so a plain install cannot move them and Dependabot reports seven
high alerts. Overrides re-resolve each one to its lowest patched version.

Key features/changes:
- Override undici 8.12.2, nodemailer 10.1.4, webpack-dev-middleware 7.4.6,
  @graphql-tools/utils 12.0.2 and zod to the project's own version
- Hold zod at 3.25.76 under koa-body and koa-session, which crash on v4
- Raise the Node floor to 22.19.0, which undici 8 requires

Carries the change first proposed in #29, rebuilt on main so the new CI
build runs on it.
@ecv ecv changed the title Patch high-severity advisories in the blog CMS dependencies fix: Patch high-severity advisories in the blog CMS Oct 28, 2026
@ecv

ecv commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

Detail for reviewers.

  • Node floor 22.19.0. engines.node rises from 20 to 22.19.0 because undici 8 requires it. Main already ships @strapi/core's undici 8.12.1 with the same floor, so the deployed CMS already runs on 22.19 or later. .npmrc sets no engine-strict, so the floor does not block an install.
  • nodemailer 9.0.1 to 10.1.4. Its only consumer is @strapi/provider-email-sendmail, Strapi's default provider. config/plugins.js configures no email provider, so mail only goes out for users-permissions password resets. 10.0.6 is the lowest version that clears both nodemailer alerts.

@ecv
ecv marked this pull request as ready for review October 28, 2026 15:40
@ecv
ecv requested a review from scotwells October 28, 2026 15:40
@ecv
ecv enabled auto-merge October 28, 2026 15:40
@polylane

polylane Bot commented Oct 28, 2026

Copy link
Copy Markdown

Warning

Polylane could not verify the production impact of this pull request.

Both files are dependency pins. The live CMS answers 200 and datum.net/blog still serves its articles; forced @graphql-tools/utils 12 keeps a CJS entry and exports every module v10 had. No CMS telemetry exists here: GCP lookups for cms/strapi workloads returned empty.

View the full analysis →

Also considered · 5 refuted
  • Refuted · Raised Node floor blocks the CMS build or boot · The 22.19.0 floor predates this diff: main already resolved @strapi/core to undici 8.12.1, whose own engines field demands Node >=22.19.0, and .nvmrc already pinned 22.
  • Refuted · Forcing @graphql-tools/utils 12 under schema 10 and Apollo 4 breaks the /graphql path · The concrete break hypothesis, a require-time failure from a removed or ESM-only module, does not hold: utils 12.0.2 still ships CJS and exports every module 10.11.0 exported.
  • Refuted · nodemailer 9 to 10 breaks the sendmail email provider · The package keeps a require entry and the wrapper Strapi calls is unchanged; no SMTP provider is configured, so email is not exercised by the blog content path.
  • Refuted · webpack-dev-middleware 6 to 7 breaks the admin build or start · The build that exercises this package passes on the branch, and the production start path does not load a dev middleware.
  • Refuted · zod override re-breaks Strapi at boot or reintroduces the koa v4 crash · The crash condition recorded for the earlier attempt (zod v4 forced under koa-session) is not recreated: the nested 3.25.76 pins remain, and the root copy is 4.6.7 against Strapi's declared 4.4.3, an upgrade inside major 4.

Dependency changes

Package Change Jump Release age
@graphql-tools/utils (lockfile) 10.11.0 → 12.0.2 major —
@jsonjoy.com/base64 (lockfile) added 17.67.0 — —
@jsonjoy.com/buffers (lockfile) added 1.2.1 — —
@jsonjoy.com/codegen (lockfile) added 17.67.0 — —
@jsonjoy.com/fs-core (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-fsa (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-node (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-node-builtins (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-node-to-fsa (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-node-utils (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-print (lockfile) added 4.80.0 — —
@jsonjoy.com/fs-snapshot (lockfile) added 4.80.0 — —
@jsonjoy.com/json-pack (lockfile) added 1.21.0 — —
@jsonjoy.com/json-pointer (lockfile) added 1.0.2 — —
@jsonjoy.com/util (lockfile) added 1.9.0 — —
@whatwg-node/promise-helpers (lockfile) 1.3.2 → 2.0.1 major —
glob-to-regex.js (lockfile) added 1.3.1 — —
hyperdyperid (lockfile) added 1.2.0 — —
memfs (lockfile) added 4.80.0 — —
mime-types (lockfile) added 3.0.2 — —
nodemailer (lockfile) 9.0.1 → 10.1.4 major —
thingies (lockfile) added 2.6.1 — —
tree-dump (lockfile) added 1.1.0 — —
undici (lockfile) 8.12.1 → 8.12.2 patch —
webpack-dev-middleware (lockfile) 6.1.3 → 7.4.6 major —

…and 1 more dependency change not shown.

Analysed against 1 cloud account and 1 repository

View in Polylane Pause assessments

Polylane could not find the cloud resources this repository manages, so this review looked at the entire cloud account. Connect this repository to its resources and the next review will focus on exactly what this code deploys to.

Connect resources

Polylane analysed 46661d3 for production impact. You can ask follow-ups by mentioning @polylane in a comment.

Rate this review: 👍 helpful · 👎 not helpful · 😕 confusing

@ecv
ecv merged commit 4c4ab95 into main Oct 28, 2026
3 checks passed
@ecv
ecv deleted the fix/high-advisories branch October 28, 2026 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants