[SCA] Remediate vulnerable dependencies — SECINV-136 - #819
Merged
Conversation
Adds a minimum-release-age gate (~7d) with a first-party @postman/* carve-out to defend against compromised fresh publishes. Honored by npm >= 11; inert under this repo's pinned npm 10 toolchain. Activating it requires standardizing the toolchain on npm 11 (Node >= 20) — tracked as a needs-human follow-up. Co-Authored-By: Claude <noreply@anthropic.com>
…-spawn) — 2026-07-24 High-severity findings from the SECINV-136 patch/minor SCA hygiene mandate. Wiz secinv-136_sca_scan: 9 HIGH finding-instances (3 packages) -> 0 (PASSED_BY_POLICY). Direct (minor): - lodash: 4.17.21 -> 4.18.1 (CVE-2026-4800, HIGH, public exploit). Root dependency bumped ^4.17.21 -> ^4.18.1; codegens dart-dio, kotlin-okhttp, nodejs-axios, rust-reqwest pinned 4.17.21 -> 4.18.1. NOTE: fix 4.18.0 is DEPRECATED ("Bad release, use 4.17.21") -> used 4.18.1. Transitive: - lodash: nested copies exact-pinned at 4.17.21 by postman-collection@5.0.0, newman, postman-runtime, postman-sandbox, postman-collection-transformer. Deduped to 4.18.1 via root override "lodash": "$lodash" (self-ref to the bumped direct dep; npm-ci-safe under exact-pinning parents). codegens that pull lodash transitively via postman-collection pin 4.18.1 via per-codegen override. - brace-expansion: 1.1.11 -> 1.1.16 (CVE-2026-13149, HIGH) via override "brace-expansion@1.1.11": "1.1.16" (parents declare ^1.1.7). - cross-spawn: 7.0.3 -> 7.0.6 (CVE-2024-21538, HIGH) resolved by clean lockfile re-resolution of the ^7.0.3 chain (6.x line -> 6.0.6). Lockfile cleanly regenerated (required for override application). npm ci green. Co-Authored-By: Claude <noreply@anthropic.com>
npm normalization during the dependency remediation dropped the empty
"devDependencies": {} object from 5 codegen manifests. structure.test.js
(test/codegen) requires json.devDependencies to be an object, so those
codegens failed CI. Re-add the field on each affected codegen; the change
is inert (no dependency-resolution or lockfile impact).
Co-Authored-By: Claude <noreply@anthropic.com>
rampostman
marked this pull request as ready for review
July 24, 2026 11:44
VShingala
approved these changes
Jul 24, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SCA Remediation Report — postman-code-generators (secinv-136 mandate) — 2026-07-24
Summary
Remediated all in-scope patch/minor High-severity SCA findings surfaced by the Wiz
secinv-136_sca_scanpolicy (transitive-inclusive). Three vulnerable libraries across9 finding-instances (root project + per-codegen manifests) were driven to 0.
WARN_BY_POLICY(pre) →PASSED_BY_POLICY(post)npm ci --legacy-peer-deps): ✅ greenengines: node>=18; CI uses Node 20)Results
$lodashoverride^1.1.7)^7.0.3chain; 6.x line → 6.0.6Fixes applied
Parent/direct bumps + overrides:
package.json:lodashdirect dependency^4.17.21→^4.18.1overrides:"lodash": "$lodash"— self-references the bumped direct dep; forces every nested lodash (5 copies exact-pinned at 4.17.21 by@postman-adjacent parents) to 4.18.1. Chosen over an unscoped literal (which triggersEOVERRIDEagainst a direct dep) and over version-scoped (which failsnpm ciunder exact-pinning parents)."brace-expansion@1.1.11": "1.1.16"dart-dio,kotlin-okhttp,nodejs-axios,rust-reqwest— exact pin4.17.21→4.18.1.postman-collection@5.0.0):http,nodejs-native,python-http.client— added per-codegenoverrides: { "lodash": "4.18.1" }(these codegens ship no lockfile; the override forces the fixed version atdeepinstalltime).package-lock.json: cleanly regenerated (required for override application — incremental/npm updateleaves stale nested nodes). lockfileVersion preserved at 3.^7.0.3chain lands on 7.0.6 (≥ fix 7.0.5); the unflagged 6.x line moved 6.0.5 → 6.0.6. (The still-presentcross-spawn@4.0.2underforeground-childwas NOT flagged by Wiz and is out of scope.)Install guardrail (separate commit): added
.npmrcrelease-age gate (minimum-release-age=10080,@postman/*exempt).Tier commits
chore(security): add install release-age guardrail (.npmrc)[SCA] Remediate patch/minor SCA vulns (lodash, brace-expansion, cross-spawn) — 2026-07-24Validation
npm ci --legacy-peer-depsexits 0 on the final treePASSED_BY_POLICY, 0 failing library findingslodash@4.18.1,cross-spawn,brace-expansionload & functionOut of scope / needs-human
.npmrcrelease-age gate is honored by npm ≥ 11 only and is inert under this repo's npm 10 toolchain. Activating it requires standardizing on npm 11 (Node ≥ 20). Deferred because npm 11 rewrites this repo's lockfile format — a separate, deliberate change.foreground-child, dev-tooling chain): technically within CVE-2024-21538's<6.0.6range but not flagged by Wiz; left untouched (out of mandate scope). Would require aforeground-childmajor bump.@postman/*exact-pin overrides were required in this run.Wiz report
Pre-scan cloud event and post-scan
PASSED_BY_POLICYverdict recorded in the run (Wizsecinv-136_sca_scanpolicy).