Skip to content

fix(deps): replace extract-zip - #473

Draft
kmbroai wants to merge 1 commit into
mainfrom
dev/kyleb/replace-extract-zip
Draft

fix(deps): replace extract-zip#473
kmbroai wants to merge 1 commit into
mainfrom
dev/kyleb/replace-extract-zip

Conversation

@kmbroai

@kmbroai kmbroai commented Aug 16, 2026

Copy link
Copy Markdown
Collaborator

Summary

Replace the unpatched extract-zip@2.0.1 dependency affected by GHSA-jmr9-qjv8-65gv. The existing call site already rejected symlink entries before extract-zip could create them, but removing the package clears the flagged dependency and avoids future exposure to its unsafe default behavior.

Changes

  • use yauzl@3.4.0 directly for lazy ZIP parsing and streaming extraction
  • validate every entry before creating archive-directed paths, while preserving strict path, collision, symlink, size, CRC-32, permission, cancellation, and cleanup behavior
  • retain CP437 filename decoding and __MACOSX filtering
  • add an advisory-shaped escaping-symlink regression and compatibility assertions
  • regenerate the pnpm lockfile without unrelated churn

Testing

  • pnpm install --frozen-lockfile — passed
  • focused Bun ZIP extraction tests — 9 passed
  • pnpm run types — passed
  • pnpm run format — passed
  • pnpm audit --prod --audit-level high — passed with no known vulnerabilities
  • pnpm pack and installed-tarball check:package — passed

The full local runtime test file reached 97 passed and 7 skipped; 24 unrelated tests require a trusted temporary-directory ancestry that this sandbox does not provide. All ZIP extraction tests passed, and GitHub Actions will run the complete Linux, macOS, and Windows matrix.

Risk and rollout

The behavior change is limited to plugin ZIP extraction. The replacement keeps the existing fail-closed archive policy and uses the parser that extract-zip previously wrapped, upgraded to its current release. No migration is required. Dependabot alerts should close after this lands and GitHub refreshes the dependency graph.

Public disclosure review

  • No customer, partner, prospect, or user identities, data, or identifying details are included.
  • No credentials, personal data, private source, scan findings, or nonpublic links or tickets are included.
  • I reviewed the branch name, title, description, commits, changes, comments, logs, screenshots, attachments, and links for public disclosure.

@github-actions github-actions Bot added the bug Something isn't working label Aug 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants