Skip to content

fix(security): patch Next.js, Zod and Nest HTTP dependencies - #53

Merged
david-developer merged 3 commits into
mainfrom
fix/security-next-zod-20261024
Oct 25, 2026
Merged

david-developer merged 3 commits into
mainfrom
fix/security-next-zod-20261024

Conversation

@david-developer

@david-developer david-developer commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Six unaccepted framework/HTTP dependency advisories blocked mandatory CI. This security correction pins the minimum compatible releases while preserving the strict-low audit policy and accepted-risk records.

Dependencies:

  • Marketplace/admin Next.js 16.4.1 fixes GHSA-2464-fhr4-w9xw, GHSA-673q-mjm6-r5xr and GHSA-p3m5-59mp-jv5r.
  • API/database Zod 4.6.6 plus exact @expo/cli@55.0.11>zod:4.6.6 fixes GHSA-mrhx-c7xc-m3w5.
  • Exact express@5.2.1>body-parser:2.4.0 and @nestjs/platform-express@11.2.6>multer:2.5.0 fix GHSA-27r3-jxmh-p828 and GHSA-q7qp-rjg7-q26m. Published compatible Nest11 patch releases retain vulnerable Multer, so Common/Core/Platform remain 11.2.6 and Express remains 5.2.1. Required qs6.16.1 is scoped to body-parser; Express keeps its existing qs.
  • Expo55.0.0, CLI55.0.11, React19.2.0 and RN0.83.0 stay pinned.

Compatibility tests exercise actual installed Expo schemas/output parsing and bounded Zod collection rejection. Three additional child-process fixtures exercise actual Nest defaults/interceptors: JSON/form parsing, malformed/oversized/encoded requests, compressed-stream errors and liveness, multipart exact/+1 limits, rejection, cancelled disk-upload cleanup and late async filter resumption after teardown. Memory/time bounds and ephemeral loopback servers isolate synthetic requests. Negative controls with cached original packages reproduce the precise uncaught Gunzip and Busboy crashes; patched fixtures pass without masking server errors.

Expo MCP limitation: optional expo-mcp/@expo/mcp-tunnel are absent and unreachable in the installed graph. Their Zod3 converter is incompatible with Zod4 schemas. The package-absence guard requires revisiting the CLI override before adding them; current CLI/schema/export/browser paths are validated.

The marketplace pagination browser test now waits for the actual replacement-city request before asserting its cursor; it also verifies the preserved purpose and returned listing. The public-reputation test identifies the unavailable-reputation alert when separate sign-in feedback is also present. Existing navigation, unsent-filter, rating, privacy and stale-data assertions remain intact. Both corrections change tests only; saved traces reproduce the original failures.

Fresh local PASS:

  • Frozen install and exact resolved graph; configured strict-low policy/audit. Full and production unfiltered audits contain only accepted node-forge; all six targeted IDs are absent. All three exception identities, full records, dates/November13 deadline and validator remain byte-identical.
  • Contracts131 routes/151 schemas; secret scans including corrected commit; fresh guarded TEST migrations.
  • Database integration 544/544, API HTTP integration/authorization 81/81, startup 76/76, all11 unit tasks, lint8/8, typecheck11/11, production build8/8 including Android/iOS/web exports. Unchanged tasks may use cache.
  • Marketplace browser 204/204 after both test corrections and staff 22/22, zero failures/skips/retries. Focused pagination 10/10 and reputation 5/5 repeat runs pass with retries disabled; affected lint/typecheck and final-head secrets pass.
  • Earlier immutable PR52 archive evidence (25units,28browser,allplatform exports,41screenshots) remains preserved. Its original filter-dialog/invalid-filter/request-suppression/navigation assertions and all36mobile files are unchanged.

Reviewed head 871614368672ad2c314973b46a63dc03ae7a4bd5, tree 119c19be98e9334418ea20ab66aa783ab16846c3, base 6be8d222470946b08660a060d602d2be35714bf2. Fresh push CI40094183083 and PR CI40094185983 both completed SUCCESS, attempt1: 20/20 mandatory gates and27/27 total steps successful, zero failures/skips. Actual PR checkout 4109823dcdc9ed6d0338f59d2a5b53a575a23777 has ordered base/head parents and exactly the reviewed tree. Both full logs confirm DB544/API81/startup76/workspace units74 across11tasks, marketplace204/staff22, all lint/typecheck/build tasks and Web/iOS/Android exports passing, zero test failures/skips/cancels/retries. Complete eleven-file review found no blocking current-graph issue. Authorization/CSRF, application source, media safeguards, migrations, workflows and risk-policy records are preserved.

Existing worktrees/PR52, environment files, credentials, media and recovery evidence remain untouched. Local database tests used an owned disposable tmpfs PostGIS instance at localhost5433/pachi_test; it was stopped/removed after passing. No existing database/container was altered. PR53 remains draft/unmerged with no auto-merge. Recommended for owner merge review. No deployment or G3-I2 refresh. G3-wide acceptance remains NOT RUN.

Pin Next.js 16.4.1 in web/admin and Zod 4.6.6 in API/database. Verify a CLI 55.0.11-specific Zod override against actual Expo schemas and exports, with explicit optional MCP absence guards. Preserve strict-low audit policy and all accepted-risk records.
Pin body-parser 2.4.0 and Multer 2.5.0 for exact Express/Nest parents. Verify actual Nest parser rejection, compressed-stream handling, multipart limits and upload cleanup with bounded regressions. Preserve all prior Next.js/Zod fixes and audit policy.
@david-developer david-developer changed the title fix(security): remediate Next.js and Zod advisories fix(security): patch Next.js, Zod and Nest HTTP dependencies Oct 24, 2026
@david-developer
david-developer marked this pull request as ready for review October 25, 2026 11:31
@david-developer
david-developer merged commit e271b49 into main Oct 25, 2026
2 checks passed
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.

1 participant