Skip to content

fix(deps): patch esbuild and PyO3 security advisories - #2069

Merged
chaliy merged 2 commits into
mainfrom
claude/upbeat-heisenberg-6i2n0t
Jun 15, 2026
Merged

chaliy merged 2 commits into
mainfrom
claude/upbeat-heisenberg-6i2n0t

Conversation

@chaliy

@chaliy chaliy commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

What

Resolves open Dependabot security alerts by bumping vulnerable dependencies.

esbuild → >=0.28.1 (all JS lockfiles) — patches:

  • GHSA-gv7w-rqvm-qjhr (High) — missing binary integrity verification in Deno module (RCE via NPM_CONFIG_REGISTRY)
  • GHSA-g7r4-m6w7-qqqr (Low) — arbitrary file read via the dev server on Windows

PyO3 → 0.29.0 (random-fs test fixture) — patches:

  • GHSA-36hh-v3qg-5jq4 (High) — out-of-bounds read in nth/nth_back for PyList/PyTuple
  • GHSA-chgr-c6px-7xpp (Moderate) — missing Sync bound on PyCFunction::new_closure

Why

These advisories were flagged by Dependabot on the default branch (9 open alerts; several are the same advisory detected across multiple manifests).

How

  • esbuild is a transitive dependency, so it's pinned via pnpm.overrides in site, examples/browser, and crates/bashkit-js, and the three pnpm-lock.yaml files were regenerated. (Their pre-existing top-level overrides field is ignored by pnpm — only pnpm.overrides is honored.)
  • The random-fs fixture is an isolated cargo workspace (no monty/jiter), so its pyo3 dep bumps cleanly to 0.29.0. Migrated the one 0.29 API change: PyCapsule::new → PyCapsule::new_with_value (name arg is now &CStr).

Verified

  • pnpm install --frozen-lockfile passes in all three JS packages (esbuild resolves to 0.28.1)
  • random-fs fixture builds clean against pyo3 0.29; cargo fmt --check and cargo clippy pass

Deferred (not in this PR)

The two main-workspace PyO3 alerts (on the root Cargo.lock) are blocked upstream: pyo3 there is shared with jiter 0.15.0 (pulled via monty), which hard-pins pyo3 ^0.28.2. Because pyo3-ffi uses links = "python", two pyo3 versions can't coexist, and no released or main-branch jiter/monty supports pyo3 0.29 yet. These will be a one-line bump once upstream ships a 0.29-compatible release.


Generated by Claude Code

Copilot AI review requested due to automatic review settings June 15, 2026 18:00
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Preview URL Updated (UTC)
✅ Deployment successful!
View logs
bashkit 89b3849 Commit Preview URL

Branch Preview URL
Jun 15 2026, 04:08 PM

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request addresses Dependabot security alerts by forcing esbuild to resolve to a patched version across the JavaScript subprojects and by bumping the PyO3 dependency used in the random-fs Rust test fixture, including the required API migration for PyCapsule.

Changes:

  • Add pnpm.overrides to pin esbuild to >=0.28.1 in site, examples/browser, and crates/bashkit-js, and regenerate the associated pnpm-lock.yaml files.
  • Bump the random-fs fixture’s pyo3 dependency to 0.29.0.
  • Migrate PyO3 capsule creation to PyCapsule::new_with_value(...) to match the PyO3 0.29 API.

Reviewed changes

Copilot reviewed 5 out of 8 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
site/package.json Adds pnpm.overrides to force patched esbuild.
site/pnpm-lock.yaml Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata.
examples/browser/package.json Adds pnpm.overrides to force patched esbuild.
examples/browser/pnpm-lock.yaml Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata.
crates/bashkit-js/package.json Adds pnpm.overrides for esbuild (note: file also contains a top-level overrides block).
crates/bashkit-js/pnpm-lock.yaml Regenerated lockfile reflecting esbuild@0.28.1 resolution + override metadata.
crates/bashkit-python/test-fixtures/random-fs/Cargo.toml Bumps pyo3 to 0.29.0.
crates/bashkit-python/test-fixtures/random-fs/src/lib.rs Updates capsule creation to the PyO3 0.29 API (new_with_value).
Files not reviewed (3)
  • crates/bashkit-js/pnpm-lock.yaml: Generated file
  • examples/browser/pnpm-lock.yaml: Generated file
  • site/pnpm-lock.yaml: Generated file

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 118 to +121
"pnpm": {
"overrides": {
"esbuild": ">=0.28.1"
},
@chaliy
chaliy merged commit 1353b36 into main Jun 15, 2026
39 checks passed
@chaliy
chaliy deleted the claude/upbeat-heisenberg-6i2n0t branch June 15, 2026 18:09
chaliy added a commit that referenced this pull request Jun 15, 2026
)

Corrected subset of the Dependabot group bump in #2067. That PR's
grouped update collapsed two semantically-named action refs into generic
release SHAs, which broke CI. This PR keeps the safe updates and drops
the two regressions.

## What

**Applied (safe):**
- `astral-sh/setup-uv` v7 → v8.2.0
- `codecov/codecov-action` v6 (`e79a696` → `fb8b358`)
- `taiki-e/install-action` v2 (`4bc351f` → `7a79fe8`) for the generic
`with: tool:` installs (cargo-vet, coreutils, cargo-llvm-cov)

**Dropped from #2067 (break CI):**
- `dtolnay/rust-toolchain` `@nightly` (`5b84223` → `e081816`) — broke
**Build wheel (Pyodide/Emscripten)**: `wasm32-unknown-emscripten` std
was no longer installed for the pinned nightly (`error[E0463]: can't
find crate for std`).
- `taiki-e/install-action` `@cargo-tarpaulin` tag (`3d6bdc4` →
`7a79fe8`) — the tool-specific tag was collapsed into a generic release
SHA, so the step no longer installed tarpaulin. **Generate Rust
Coverage** failed with `error: no such command: tarpaulin`.

## Why

#2067's CI was red on those two jobs (plus the `Python Check`
aggregator). PR #2069, which had no action bumps, passed all of them —
confirming both failures were introduced by the grouped bump, not
pre-existing. (#2067 also hit a transient rustup cache flake on `Build
wheel`, unrelated to the bumps.)

## Verification

YAML validated for all touched workflows. Behavior is validated by CI
itself running green on this PR.

Supersedes #2067.

---
_Generated by [Claude
Code](https://claude.ai/code/session_01TyvhVVRep8MD3yECMaAuUB)_
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