Skip to content

fix(deps): crossbeam-epoch 0.9.20 for RUSTSEC-2026-0204 - #4

Open
noahgift wants to merge 2 commits into
mainfrom
fix/rustsec-2026-0204-crossbeam-epoch
Open

fix(deps): crossbeam-epoch 0.9.20 for RUSTSEC-2026-0204#4
noahgift wants to merge 2 commits into
mainfrom
fix/rustsec-2026-0204-crossbeam-epoch

Conversation

@noahgift

@noahgift noahgift commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

RUSTSEC-2026-0204

crossbeam-epoch 0.9.18 → 0.9.20. Invalid pointer dereference in the fmt::Pointer impl for Atomic/Shared. Patch-level lockfile bump.

⚠️ This PR carries more than that — and here's why

While landing the bump, the local pre-push gate turned out to be structurally unpassable:

Check State
cargo test --lib errors: no library targets found in package cohete — this crate is bin-only, so it could never pass
cargo fmt --all --check 84 diffs across all 9 source files
cargo clippy -- -D warnings 2 errors

A gate that cannot pass is worse than no gate: every push had to use --no-verify, so nothing was ever enforced — which is exactly how the unformatted code and the clippy errors accumulated behind it.

Fixed here:

  • clippy: map(..).unwrap_or(false)is_ok_and (runner.rs); three truncating usize as u32 casts → u32::try_from (benches/); dropped a redundant use serde_json;
  • rustfmt applied across all 9 files

The hook itself lives in .git/hooks (untracked, so this PR can't carry it). Locally it now runs cargo test instead of cargo test --lib, so it works on a bin-only crate, and prints failure output instead of a bare ❌.

Verification

format, cargo check, clippy -D warnings and tests all pass — the gate is green here for the first time — and cargo audit no longer reports 0204.

Related

Also found: all three of this repo's scheduled workflows were in disabled_inactivity (GitHub's 60-day auto-disable), unnoticed for ~4 months because cohete was outside the fleet lane-liveness scope. Nightly and Nightly Benchmarks are re-enabled; Nightly E2E needs the offline Jetson. See paiml/infra#167 and PMAT-202.

🤖 Generated with Claude Code

noahgift and others added 2 commits July 30, 2026 08:54
RUSTSEC-2026-0204: invalid pointer dereference in the `fmt::Pointer` impl for
`Atomic` and `Shared` when the underlying pointer is invalid. Fixed upstream in
0.9.20; this is a patch-level lockfile bump inside the existing semver range, so
only Cargo.lock changes.

Found by running the fleet lane-liveness dead-man's switch: whisper.apr, pepita
and pzsh Nightly Bench had all been failing for exactly 23 days on this one
advisory, matching its publication date. A scan then found 90 of 94 local repos
carrying the vulnerable 0.9.18.

Verified: `cargo audit` no longer reports RUSTSEC-2026-0204 for this repo. Other
pre-existing advisories, where present, are untouched.

Refs PMAT-203
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…e gate let in

RUSTSEC-2026-0204: invalid pointer dereference in crossbeam-epoch's fmt::Pointer
impl for Atomic/Shared. Patch-level lockfile bump, 0.9.18 -> 0.9.20.

The rest of this commit is debt that accumulated because the local pre-push gate
could never pass, so every push had to use --no-verify and nothing was enforced:

  * `cargo test --lib` ERRORS on this crate -- "no library targets found in
    package cohete". cohete is bin-only, so that check was structurally
    impossible, not merely failing.
  * 84 rustfmt diffs across all 9 source files.
  * 2 clippy errors under -D warnings.

A gate that cannot pass is worse than no gate: it trains everyone to bypass it,
and then real findings ride in behind the bypass. Fixed here:

  * clippy: `map(..).unwrap_or(false)` -> `is_ok_and` in runner.rs; three
    `usize as u32` truncating casts -> `u32::try_from` in benches; dropped a
    redundant `use serde_json;`.
  * rustfmt: applied across all 9 files.

The hook itself is in .git/hooks (untracked, so this commit cannot carry it); it
now runs `cargo test` instead of `cargo test --lib` so it works on a bin-only
crate, and prints failure output instead of a bare ❌.

Verified: format, check, clippy -D warnings and tests all pass -- the gate is
green here for the first time -- and `cargo audit` no longer reports 0204.

Refs PMAT-203
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@noahgift

Copy link
Copy Markdown
Contributor Author

⛔ Blocked on paiml/.github#44

All three red checks — ci / test, ci / coverage, and ci / gate (which aggregates them) — are the same upstream defect, not anything in this PR:

error: process didn't exit successfully: `cargo test ... --lib` (exit status: 101)
error: no library targets found in package `cohete`

sovereign-ci.yml passes --lib on every branch of its test and coverage fallback chains, and cargo test --lib errors rather than fails on a crate with no [lib]. cohete is bin-only, so it has no reachable configuration — test_workspace only toggles --workspace, and both values keep --lib.

paiml/.github#44 appends one --lib-free link to each chain (purely additive — crates that have a lib never reach it). These checks should go green once it merges; nothing further is needed here.

Worth noting the symmetry: the same --lib assumption made this repo's local pre-push hook unpassable, which is how the 84 rustfmt diffs and 2 clippy errors fixed in this PR accumulated in the first place.

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