Cargo prior to Rust 1.26.0 may download the wrong dependency if your
package.toml file uses the package
configuration key. Usage of the
package
key to rename dependencies in Cargo.toml
is ignored in Rust
1.25.0 and prior. When Rust 1.25.0 and prior is used Cargo may download the
wrong dependency, which could be squatted on crates.io to be a malicious
package. This not only affects manifests that you write locally yourself,
but also manifests published to crates.io. Rust 1.0.0 through Rust 1.25.0
is affected by this advisory because Cargo will ignore the package
key in
manifests. Rust 1.26.0 through Rust 1.30.0 are not affected and typically
will emit an error because the package
key is unstable. Rust 1.31.0 and
after are not affected because Cargo understands the package
key. Users
of the affected versions are strongly encouraged to update their compiler
to the latest available one. Preventing this issue from happening requires
updating your compiler to be either Rust 1.26.0 or newer. There will be no
point release for Rust versions prior to 1.26.0. Users of Rust 1.19.0 to
Rust 1.25.0 can instead apply linked patches to mitigate the issue.
gist.github.com/pietroalbini/0d293b24a44babbeb6187e06eebd4992
github.com/rust-lang/rust/security/advisories/GHSA-phjm-8x66-qw4r
groups.google.com/forum/#!topic/rustlang-security-announcements/rVQ5e3TDnpQ
launchpad.net/bugs/cve/CVE-2019-16760
nvd.nist.gov/vuln/detail/CVE-2019-16760
security-tracker.debian.org/tracker/CVE-2019-16760
www.cve.org/CVERecord?id=CVE-2019-16760