Skip to content

The js-yaml override floor moves to the advisory it now answers (GHSA-2883-xcg3-v3hh) - #27

Merged
gsavastano merged 1 commit into
mainfrom
gsavastano/js-yaml-advisory-floor
Sep 15, 2026
Merged

gsavastano merged 1 commit into
mainfrom
gsavastano/js-yaml-advisory-floor

Conversation

@gsavastano

Copy link
Copy Markdown
Contributor

What

Raises the TS lane's js-yaml override floor from ^4.3.1 to ^4.3.2 and relocks, clearing
GHSA-2883-xcg3-v3hh (HIGH, CVSS 7.5 — maxTotalMergeKeys does not limit CPU use for empty merge
sources). Three lines of lockfile, one line of manifest.

The override cannot be removed, and that is the part worth recording. js-yaml is not a
dependency of this lane at all — it is pulled transitively by @hey-api/json-schema-ref-parser@1.4.4,
which declares it at an exact "4.2.0". With no override the tree resolves 4.2.0, which is inside
the vulnerable range (>= 4.0.0, < 4.3.2), so removing it would reintroduce the advisory and drop
two patch lines besides. No range solver routes around an exact pin. The override is load-bearing and
stays.

The range was already ^4.3.1, which admits 4.3.2 — so the lockfile alone was stale and a relock was
strictly sufficient. The floor moves anyway so the number states which advisory it answers, rather
than sitting one patch below the line it exists to clear. That is how the upstream node repo writes
its two overrides (deepmerge-ts ^8.0.1 against patch line 8.0.0, mysql2 ^3.23.1 against 3.23.1).

Why

Dependabot was never going to fix this. The alert is raised — repo-level security updates are
enabled — but there is no dependency edge to bump, so no fix is authorable, and this repository
carries no .github/dependabot.yml: Dependabot has never opened a PR here at all. The alert would
have sat until someone looked.

Two follow-ups this turned up, deliberately not bundled into a security fix:

  • No .github/dependabot.yml. opendpp-interop has one; this repo does not, so nothing sweeps
    the three lanes on a schedule. Worth adding, per-lane (typescript/, java/, python/).
  • No code scanning. code-scanning/default-setup reads {"state":"not-configured"} and the
    alerts endpoint 404s with "no analysis found". This is the published client surface and has never
    been CodeQL-scanned; opendpp-interop has been, and its findings there were real (six
    js/polynomial-redos HIGH, since fixed at source).

Verification

npm ci exit 0 · npm audit --audit-level=low 0 vulnerabilities (was 1 HIGH) · typecheck ·
build · test · check:version · and check:drift — the meaningful one, since it regenerates the
client through the openapi-ts path that actually parses YAML, so 4.3.2 is exercised rather than
merely installed. allowScripts needed no change: no install-script-bearing package moved version.

GHSA-2883-xcg3-v3hh (HIGH, CVSS 7.5) patches at js-yaml 4.3.2; the TS lane
resolved 4.3.1.

The override cannot be removed, and that is worth stating rather than
rediscovering: js-yaml is not a dependency of this lane at all. It is pulled by
@hey-api/json-schema-ref-parser@1.4.4, which declares it at an EXACT "4.2.0" —
so with no override the tree resolves 4.2.0, still inside the vulnerable range
(>= 4.0.0, < 4.3.2). No range solver routes around an exact pin. The override is
load-bearing and stays.

Its range was already `^4.3.1`, which admits 4.3.2, so the lockfile alone was
stale. Raising the floor to `^4.3.2` states which advisory the number answers
instead of leaving it one patch below the line it exists to clear.

Dependabot did not and will not author this: there is no dependency edge to bump,
and this repo carries no .github/dependabot.yml — it has never opened a PR here.

Verified in the TS lane: npm ci, npm audit --audit-level=low (0 vulnerabilities),
typecheck, build, test, check:version, and check:drift — the last being the
meaningful one, since it regenerates the client through the openapi-ts path that
actually parses YAML.
@gsavastano
gsavastano merged commit 03728f8 into main Sep 15, 2026
4 checks passed
@gsavastano
gsavastano deleted the gsavastano/js-yaml-advisory-floor branch September 15, 2026 09:16
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