Skip to content

fix(deps): patch js-yaml merge-source denial of service - #2384

Open
berkay-byte wants to merge 1 commit into
pmxt-dev:mainfrom
berkay-byte:fix/js-yaml-ghsa-2883
Open

berkay-byte wants to merge 1 commit into
pmxt-dev:mainfrom
berkay-byte:fix/js-yaml-ghsa-2883

Conversation

@berkay-byte

Copy link
Copy Markdown

Fixes #2358.

js-yaml@3.14.2 is affected by CVE-2026-84375 / GHSA-2883-xcg3-v3hh: empty YAML merge sources bypass the merge-key budget and can exhaust CPU. Raise the direct devDependency floor to ^3.15.2 and update both npm lockfiles to the patched 3.x release. This also updates the copy shared with the Jest/Babel toolchain without a major-version migration.

Add regression coverage that rejects empty merge sources exceeding a small budget and accepts ordinary merges within the budget. Exposure here is in development/spec-generation tooling; this PR does not claim a reachable production exploit.

Validation on Windows / Node 24:

  • Clean npm ci --ignore-scripts succeeded; installed js-yaml is 3.15.2.
  • Core TypeScript check passed (tsc -p core/tsconfig.json --noEmit).
  • Core Jest: 823 passed, 3 already skipped, with pmxt-ensure-server.test.ts excluded. The full run otherwise passes after local LF normalization; that launcher test assumes Unix HOME/PATH and executable-script behavior and fails on Windows.
  • TypeScript SDK: 49 tests passed; 10 suites could not compile because the ignored generated/src/index.js client is absent in a fresh clone. The local environment has no Java runtime for OpenAPI generation.
  • Installed the missing Windows resolver binding locally to run Jest; no platform-specific dependency/config changes are included.

Other npm audit findings remain outside this focused fix. Full Linux/integration verification is still needed before merge.

Advisory: GHSA-2883-xcg3-v3hh

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HIGH: js-yaml@3.14.2 — maxTotalMergeKeys does not count empty mappings, enabling CPU-exhaustion DoS (GHSA-2883-xcg3-v3hh)

1 participant