Skip to content

fix(deps): bump pyo3 to 0.29 to resolve two security advisories#2122

Merged
chaliy merged 1 commit into
mainfrom
claude/friendly-einstein-utblyo
Jun 23, 2026
Merged

fix(deps): bump pyo3 to 0.29 to resolve two security advisories#2122
chaliy merged 1 commit into
mainfrom
claude/friendly-einstein-utblyo

Conversation

@chaliy

@chaliy chaliy commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

What

Bumps pyo3 and pyo3-async-runtimes from 0.28 to 0.29, resolving two open Dependabot security advisories affecting the bashkit-python extension:

Why it needed a jiter patch

The upgrade was blocked by montyjiter 0.15.0, whose optional pyo3 = "^0.28.2" pins the whole workspace below 0.29 through pyo3-ffi's links = "python" global uniqueness. monty enables jiter's num-bigint feature, whose weak pyo3?/num-bigint reference forces the resolver to honour that 0.28 bound even though jiter's python feature is never activated here.

jiter main is still version 0.15.0 (semver-compatible with monty's ^0.15.0) but already tracks pyo3 0.29, so it is pinned via [patch.crates-io] to upstream main — unblocking the bump without a fork. The patch can be dropped once monty ships a release tracking a published jiter with pyo3 0.29.

Changes

  • Cargo.toml: pyo3/pyo3-async-runtimes → 0.29; [patch.crates-io] jiter → upstream main (with rationale comment)
  • Cargo.lock: pyo3 stack → 0.29.0 (kept git-dep-free, matching the repo convention)
  • crates/bashkit-python/src/lib.rs: PyCapsule::newPyCapsule::new_with_value (0.29 API)
  • deny.toml: allow the pydantic/jiter git source
  • supply-chain/config.toml: refresh cargo-vet exemptions to pyo3 0.29.0

Verification

  • cargo check / cargo clippy -- -D warnings (bashkit-python) ✅
  • cargo vet --locked (full graph) ✅
  • cargo fmt --check
  • Built the extension via maturin develop and the random-fs fixture; runtime smoke (exec + VFS) and the test_filesystem_interop.py capsule export/import tests (the changed code path) all pass under pyo3 0.29 ✅

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jun 23, 2026

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 5b89da6 Commit Preview URL

Branch Preview URL
Jun 23 2026, 09:54 AM

Bumps pyo3 and pyo3-async-runtimes from 0.28 to 0.29, resolving two
Dependabot security advisories in the bashkit-python extension:

- GHSA-36hh-v3qg-5jq4 (high): out-of-bounds read in `nth`/`nth_back`
  for `PyList`/`PyTuple` iterators
- GHSA-chgr-c6px-7xpp (medium): missing `Sync` bound on
  `PyCFunction::new_closure` closures

The upgrade was blocked by `monty` -> `jiter 0.15.0`, whose optional
`pyo3 = "^0.28.2"` constrains the whole graph through pyo3-ffi's
`links = "python"` global uniqueness (monty enables jiter's
`num-bigint` feature, whose weak `pyo3?/num-bigint` reference forces
the resolver to honour that bound even though jiter's `python` feature
is never activated). jiter `main` is still version 0.15.0 — so
semver-compatible with monty's `^0.15.0` — but already tracks pyo3
0.29, so it is pinned via `[patch.crates-io]` to unblock the bump
without a fork.

- Update `PyCapsule::new` -> `PyCapsule::new_with_value` (0.29 API)
- Allow the pydantic/jiter git source in deny.toml
- Refresh cargo-vet exemptions to pyo3 0.29.0

Verified: cargo check/clippy -D warnings, cargo vet --locked, and the
bashkit-python filesystem-capsule interop tests all pass under 0.29.
@chaliy chaliy force-pushed the claude/friendly-einstein-utblyo branch from ccab1e7 to 5b89da6 Compare June 23, 2026 09:54
@chaliy chaliy merged commit 5dcd601 into main Jun 23, 2026
35 checks passed
@chaliy chaliy deleted the claude/friendly-einstein-utblyo branch June 23, 2026 10:05
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