Skip to content

Update crossbeam-channel and adopt jemalloc - #73

Open
aniketfuryrocks wants to merge 2 commits into
jito-labs:masterfrom
BlockMachineHQ:bm-hardening
Open

Update crossbeam-channel and adopt jemalloc#73
aniketfuryrocks wants to merge 2 commits into
jito-labs:masterfrom
BlockMachineHQ:bm-hardening

Conversation

@aniketfuryrocks

Copy link
Copy Markdown

Summary

  • update crossbeam-channel from 0.5.14 to 0.5.15, resolving RUSTSEC-2025-0024 / CVE-2025-4574
  • use jemalloc as the global allocator on supported targets, matching Agave binaries
  • harden the proxy after two production glibc heap-corruption aborts under sustained ~30k packets/s

Production validation

This build has run for more than eight days under the same sustained production workload without another heap-corruption abort or crash. Because the dependency upgrade and allocator change were deployed together, the soak result does not isolate which change prevented recurrence.

Testing

  • cargo fmt --all -- --check
  • cargo clippy --all-features --all-targets --tests -- -D warnings
  • cargo test --workspace --all-features (14 proxy tests pass; three unrelated deshred/UDP tests fail identically on origin/master on macOS)

Fixes #72

Two hardening changes after two in-production glibc heap-corruption
aborts ("corrupted size vs. prev_size" 2026-07-05, malloc.c:2601
sysmalloc assertion 2026-07-09), each after hours of sustained
~30k packets/s:

- Bump crossbeam-channel 0.5.14 -> 0.5.15. 0.5.12-0.5.14 are
  vulnerable to RUSTSEC-2025-0024 / CVE-2025-4574, a race in
  Channel::drop / discard_all_messages that double-frees a heap
  block and corrupts allocator metadata. This was the only known
  memory-corruption defect in the dependency closure (OSV sweep of
  the remaining hot-path crates came back clean), and the hot path
  pushes every shred batch through this crate.

- Use jemalloc as the global allocator, mirroring agave's binaries.
  The proxy was the only piece of this solana stack running glibc
  malloc; agave runs jemalloc fleet-wide, so glibc-only heap-layout
  fragility in shared code paths detonates here first.
@socket-security

socket-security Bot commented Jul 17, 2026

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedcrossbeam-channel@​0.5.14 ⏵ 0.5.15100100 +293100100

View full report

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.

Heap-corruption aborts under sustained load — Cargo.lock pins crossbeam-channel 0.5.14 (CVE-2025-4574 double free)

1 participant