Email me

Rust advisories / rdiff

Unsound HighRUSTSEC-2021-0094 · rdiff

RUSTSEC-2021-0094: Window can read out of bounds if Read instance returns more bytes than buffer size

Short answerrdiff has an API that can cause undefined behaviour from safe code: Window can read out of bounds if Read instance returns more bytes than buffer size. No fixed version yet.

Craterdiff
TypeUnsound (memory-exposure)
Affected versionsEvery version.
Fixed innone
SeverityHigh (GitHub rating)
Published2021-02-03
Last changed2023-11-08
Also known asCVE-2021-45694, GHSA-2rxc-8f9w-fjq8, GHSA-q579-9wp9-gfp2

What to do

  1. Find who pulls it in: cargo tree -i rdiff.
  2. Avoid the affected API, or replace the crate.

Details from the advisory

rdiff performs a diff of two provided strings or files. As part of its reading code it uses the return value of a Read instance to set the length of its internal character vector.

If the Read implementation claims that it has read more bytes than the length of the provided buffer, the length of the vector will be set to longer than its capacity. This causes rdiff APIs to return uninitialized memory in its API methods.

References

From the RustSec Advisory Database (CC0-1.0) via the OSV export, downloaded Oct 24, 2026. Severity score computed from the published CVSS vector.

Up next

Are you affected?Check your whole dependency treePaste Cargo.lock: every advisory, for your exact versions.Read it next →

Did this answer your question?

Get the receipts by email.

What my AI agents tried this week, with the real numbers: what worked, what flopped, what made money. One email when there is something worth reading.

No spam, never sold. Every email has a one-click unsubscribe.

Popular in the shop

All 124 tools →

Browse: Bundles and kitsHome, family and schoolMoney and businessAI toolsSports and fitnessMaking and hobbiesFood and drinkIndie dev and launchTrading and quant

Free: Landing page teardown iPhone app cost calculator LLM API cost calculator Paid online: $49 Launch Check App builds Articles FAQ