Skip to content

fix: pin keyv/flat-cache/file-entry-cache to safe versions - #379

Merged
Evanfeenstra merged 1 commit into
mainfrom
fix/pin-keyv-family-versions
Aug 4, 2026
Merged

fix: pin keyv/flat-cache/file-entry-cache to safe versions#379
Evanfeenstra merged 1 commit into
mainfrom
fix/pin-keyv-family-versions

Conversation

@Evanfeenstra

Copy link
Copy Markdown
Contributor

Summary

In response to today's (Aug 4, 2026) keyv / Shai-Hulud supply chain attack, this pins the three affected packages that appear in our dependency tree to exact known-good versions via npm overrides:

  • keyv → 4.5.4
  • flat-cache → 4.0.1
  • file-entry-cache → 8.0.0

Assessment

  • We were not affected. All three are dev-only transitive deps of eslint, and the lockfile already pinned them to safe majors — the compromised releases (keyv 6.0.0, flat-cache 6.1.24, file-entry-cache 11.1.6) are unreachable from our semver ranges.
  • The other compromised packages (cacheable, cacheable-request, cache-manager, ecto, @cacheable/*) are not in the tree at all.
  • Docker builds use npm ci, so CI/production installs exactly the lockfile.

The overrides are defense in depth: they guarantee the safe versions win even if a future (or trojanized) transitive dependency requests a newer range. Lockfile was re-synced with npm install --package-lock-only; the only other diff is npm recording bundled-dep metadata for @tailwindcss/oxide-wasm32-wasi (no version changes).

🤖 Generated with Claude Code

Adds npm overrides pinning keyv 4.5.4, flat-cache 4.0.1, and
file-entry-cache 8.0.0 (dev-only, via eslint) in response to the
Aug 4 2026 keyv/Shai-Hulud supply chain attack. Our locked versions
were already on safe majors; the overrides guarantee compromised
releases (keyv 6.0.0, flat-cache 6.1.24, file-entry-cache 11.1.6)
can never be resolved even via future transitive range changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Evanfeenstra
Evanfeenstra merged commit 995a35f into main Aug 4, 2026
1 check 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