Skip to content

fix(deps): bump rkyv to 0.8.17 and bytes to 1.11.1 to resolve multiple CVEs - #7

Open
ygd58 wants to merge 1 commit into
PsyProtocol:mainnet-betafrom
ygd58:fix/rkyv-memory-corruption-cves
Open

fix(deps): bump rkyv to 0.8.17 and bytes to 1.11.1 to resolve multiple CVEs#7
ygd58 wants to merge 1 commit into
PsyProtocol:mainnet-betafrom
ygd58:fix/rkyv-memory-corruption-cves

Conversation

@ygd58

@ygd58 ygd58 commented Aug 29, 2026

Copy link
Copy Markdown

What changed

Bump rkyv 0.8.12 -> 0.8.17 and bytes 1.11.0 -> 1.11.1 in Cargo.lock (workspace-level version bump for rkyv in Cargo.toml).

Why

rkyv 0.8.12 has three unpatched advisories affecting archive deserialization:

  • RUSTSEC-2026-0001 — potential UB in Arc/Rc::from_value on OOM
  • RUSTSEC-2026-0233 — use-after-free during deserialization of crafted archives
  • RUSTSEC-2026-0234 / RUSTSEC-2026-0235 — out-of-bounds reads via insufficient archive validation (hash tables, Rc/Arc)

rkyv is pinned at the workspace root and used across nearly every crate in this repo, so these are reachable wherever archived/serialized data of unknown origin is deserialized.

bytes 1.11.0 has RUSTSEC-2026-0007, an integer overflow in BytesMut::reserve that can lead to memory corruption.

Both are patch-level bumps within their existing minor version branches, with unchanged public API/dependency surface.

Compatibility

None expected — patch-level bumps only.

Validation

cargo build --release succeeds cleanly for the full workspace (nightly-2025-09-20 toolchain).

Side note

While setting up a clean build for this PR, I noticed the repo doesn't build from a fresh clone without git submodule update --init --recursive (psy-genesis submodule is required at build time by psy_config's build.rs). Happy to send a small README PR documenting that step separately if useful.

Advisories:

…e CVEs

rkyv 0.8.12 has three unpatched memory-corruption/memory-exposure
issues affecting archive deserialization:
- RUSTSEC-2026-0001: potential UB in Arc<T>/Rc<T> from_value on OOM
- RUSTSEC-2026-0233: use-after-free during deserialization of
  crafted archives
- RUSTSEC-2026-0234/0235: out-of-bounds reads via insufficient
  archive validation (hash tables, Rc/Arc)

rkyv is pinned at the workspace root and used across nearly every
crate in this repo (psy_core, psy_data, parth_crypto, etc.), so
these are reachable wherever archived/serialized data of unknown
origin is deserialized.

bytes 1.11.0 has RUSTSEC-2026-0007, an integer overflow in
BytesMut::reserve that can lead to memory corruption.

Both are patch-level bumps within their existing branches
(0.8.12->0.8.17, 1.11.0->1.11.1) with unchanged public API surface.

Verified: cargo build --release succeeds cleanly for the full
workspace (nightly-2025-09-20 toolchain).
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