Description
WS-2020-0189 - Medium Severity Vulnerability
Vulnerable Libraries - futures-util-0.3.5.crate, futures-util-0.3.4.crate
futures-util-0.3.5.crate
Common utilities and extension traits for the futures-rs library.
Library home page: https://crates.io/api/v1/crates/futures-util/0.3.5/download
Path to dependency file: /third_party/rust_crates/vendor/event-listener/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/event-listener/Cargo.toml
Dependency Hierarchy:
- futures-0.3.5.crate (Root Library)
- ❌ futures-util-0.3.5.crate (Vulnerable Library)
futures-util-0.3.4.crate
Common utilities and extension traits for the futures-rs library.
Library home page: https://crates.io/api/v1/crates/futures-util/0.3.4/download
Path to dependency file: /third_party/rust_crates/vendor/hyper/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/hyper/Cargo.toml,/third_party/rust_crates/vendor/h2/Cargo.toml,/third_party/rust_crates/vendor/hyper-rustls/Cargo.toml
Dependency Hierarchy:
- ❌ futures-util-0.3.4.crate (Vulnerable Library)
Found in HEAD commit: 4ec0c406a28f193fe6e7376ee7696cca0532d4ba
Found in base branch: master
Vulnerability Details
Affected versions of futures-rs had a Send/Sync implementation for MappedMutexGuard that only considered variance on T, while MappedMutexGuard dereferenced to U.
This could of led to data races in safe Rust code when a closure used in MutexGuard::map() returns U that is unrelated to T.
The issue was fixed by fixing Send and Sync implementations, and by adding a PhantomData<&'a mut U> marker to the MappedMutexGuard type to tell the compiler that the guard is over U too.
This is affecting future-rs 0.3.2 through 0.3.6 and fixed in futures-rs 0.3.7 onwards.
Publish Date: 2020-11-02
URL: WS-2020-0189
CVSS 3 Score Details (5.3)
Base Score Metrics:
- Exploitability Metrics:
- Attack Vector: Network
- Attack Complexity: Low
- Privileges Required: None
- User Interaction: None
- Scope: Unchanged
- Impact Metrics:
- Confidentiality Impact: None
- Integrity Impact: None
- Availability Impact: Low
Step up your Open Source Security Game with Mend here