Skip to content

WS-2020-0189 (Medium) detected in futures-util-0.3.5.crate, futures-util-0.3.4.crate #34

Open
@mend-bolt-for-github

Description

@mend-bolt-for-github

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

For more information on CVSS3 Scores, click here.

Suggested Fix

Type: Upgrade version

Release Date: 2020-11-02

Fix Resolution: 0.3.7


Step up your Open Source Security Game with Mend here

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions