Email me

Rust advisories / through

Vulnerability CriticalRUSTSEC-2021-0049 · through

RUSTSEC-2021-0049: `through` and `through_and` causes a double free if the map function panics

Short answerA security vulnerability in the through crate: `through` and `through_and` causes a double free if the map function panics. Critical severity (CVSS 9.8). No fixed version: replace the crate or remove the affected code path.

Cratethrough
TypeVulnerability (memory-corruption)
Affected versionsEvery version.
Fixed innone
SeverityCritical, CVSS 9.8
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Published2021-02-18
Last changed2023-11-08
Also known asCVE-2021-29940, GHSA-5hpj-m323-cphm

What to do

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

Details from the advisory

through and through_and take a mutable reference as well as a mapping function to change the provided reference. They do this by calling ptr::read on the reference which duplicates ownership and then calling the mapping function.

If the mapping function panics, both the original object and the one duplicated by ptr::read get dropped, causing a double free.

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