Skip to content

fix cargo-deny, update cg_pqp deps to what cg_ssa uses - #674

Merged
Firestar99 merged 1 commit into
mainfrom
fix-cargo-deny-ruzstd
Oct 13, 2026
Merged

Firestar99 merged 1 commit into
mainfrom
fix-cargo-deny-ruzstd

Conversation

@Firestar99

@Firestar99 Firestar99 commented Oct 13, 2026 •

Copy link
Copy Markdown
Member
error[vulnerability]: Decompression bomb in `ruzstd`: a tiny input can exhaust memory (OOM)
    ┌─ /home/firestar99/workspace/rust-gpu/Cargo.lock:469:1
    │
469 │ ruzstd 0.7.3 registry+https://github.com/rust-lang/crates.io-index
    │ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ security vulnerability detected
    │
    ├ ID: RUSTSEC-2026-0344
    ├ Advisory: https://rustsec.org/advisories/RUSTSEC-2026-0344
    ├ A crafted `.zst` input under 128 KB can force `ruzstd` to allocate several gigabytes at once, 
    crashing the process with an out-of-memory condition. Since `ruzstd` is a decoder for untrusted 
    input, a single small file is enough to take down anything decoding it.
      
      The compressed size of a block was capped at 128 KB, but a compressed block's **decompressed**
      size was never checked against `Block_Maximum_Size = min(Window_Size, 128 KiB)` (RFC 8878). In
      `execute_sequences` the output was built with no running bound and no flush between blocks, so 
      one block could expand to gigabytes — bypassing both the configured window-size limit and the
      block-by-block streaming that would otherwise release memory. (A related `u32` counter overflow
      on such a block caused an additional panic.)
      
      This is a denial of service only; memory access stays in bounds (no corruption, no RCE).
      
      `ruzstd` is also built as a dependency of the Rust standard library via `rustc-dep-of-std`; in 
      the toolchain it is used only to load zstd-compressed debug symbols, so the toolchain-side 
      impact is limited.
      
      **Fixed in 0.9.1** (commit `d3907c9`), which enforces the per-block output bound. Upgrade to `ruzstd >= 0.9.1`.
    ├ Announcement: https://github.com/KillingSpark/zstd-rs/commit/d3907c960ca4a1aa44cc38340137c5679dd98f5a
    ├ Solution: Upgrade to >=0.9.1 (try `cargo update -p ruzstd`)
    ├ ruzstd v0.7.3
      └── object v0.36.7
          └── thorin-dwp v0.9.0
              └── rustc_codegen_spirv v0.10.0
                  ├── compiletests v0.0.0
                  └── spirv-builder v0.10.0
                      ├── cargo-gpu-install v0.10.0
                      │   └── cargo-gpu v0.10.0
                      ├── example-runner-ash v0.0.0
                      ├── example-runner-wgpu v0.0.0
                      ├── example-runner-wgpu-builder v0.0.0
                      └── multibuilder v0.0.0

@Firestar99
Firestar99 force-pushed the fix-cargo-deny-ruzstd branch from 577d983 to ae92ea1 Compare October 13, 2026 11:32
@Firestar99
Firestar99 added this pull request to stack #676 October 13, 2026 12:06
@Firestar99 Firestar99 mentioned this pull request Oct 13, 2026
@Firestar99
Firestar99 force-pushed the fix-cargo-deny-ruzstd branch from ae92ea1 to d1b53b0 Compare October 13, 2026 12:07
@Firestar99
Firestar99 added this pull request to the merge queue Oct 13, 2026
Merged via the queue into main with commit 497e55b Oct 13, 2026
24 checks passed
@Firestar99
Firestar99 deleted the fix-cargo-deny-ruzstd branch October 13, 2026 12:48
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