A soundness issue was discovered in tokio. tokio::io::ReadHalf::unsplit can violate the Pin contract. Specific set of conditions needed to trigger an issue (a !Unpin type in ReadHalf) is unusual, combined with the difficulty of making any arbitrary use-after-free exploitable in Rust without doing a lot of careful alignment of data types in the surrounding code. The tokio feature io-util is also required to be enabled to trigger this soundness issue.
WS-2023-0027 - Critical Severity Vulnerability
Vulnerable Libraries - tokio-0.2.9.crate, tokio-0.2.13.crate, tokio-0.2.11.crate, tokio-1.0.1.crate, tokio-0.2.21.crate
tokio-0.2.9.crate
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
Library home page: https://crates.io/api/v1/crates/tokio/0.2.9/download
Path to dependency file: /third_party/rust_crates/vendor/trust-dns-resolver/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/trust-dns-resolver/Cargo.toml
Dependency Hierarchy: - :x: **tokio-0.2.9.crate** (Vulnerable Library)
tokio-0.2.13.crate
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
Library home page: https://crates.io/api/v1/crates/tokio/0.2.13/download
Path to dependency file: /third_party/rust_crates/vendor/h2/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/h2/Cargo.toml,/third_party/rust_crates/vendor/hyper/Cargo.toml
Dependency Hierarchy: - :x: **tokio-0.2.13.crate** (Vulnerable Library)
tokio-0.2.11.crate
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
Library home page: https://crates.io/api/v1/crates/tokio/0.2.11/download
Path to dependency file: /third_party/rust_crates/vendor/hyper-rustls/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/hyper-rustls/Cargo.toml
Dependency Hierarchy: - :x: **tokio-0.2.11.crate** (Vulnerable Library)
tokio-1.0.1.crate
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
Library home page: https://crates.io/api/v1/crates/tokio/1.0.1/download
Path to dependency file: /third_party/rust_crates/vendor/crossterm/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/vendor/crossterm/Cargo.toml
Dependency Hierarchy: - :x: **tokio-1.0.1.crate** (Vulnerable Library)
tokio-0.2.21.crate
An event-driven, non-blocking I/O platform for writing asynchronous I/O backed applications.
Library home page: https://crates.io/api/v1/crates/tokio/0.2.21/download
Path to dependency file: /third_party/rust_crates/Cargo.toml
Path to vulnerable library: /third_party/rust_crates/Cargo.toml
Dependency Hierarchy: - :x: **tokio-0.2.21.crate** (Vulnerable Library)
Found in HEAD commit: 4ec0c406a28f193fe6e7376ee7696cca0532d4ba
Found in base branch: master
Vulnerability Details
A soundness issue was discovered in tokio. tokio::io::ReadHalf::unsplit can violate the Pin contract. Specific set of conditions needed to trigger an issue (a !Unpin type in ReadHalf) is unusual, combined with the difficulty of making any arbitrary use-after-free exploitable in Rust without doing a lot of careful alignment of data types in the surrounding code. The tokio feature io-util is also required to be enabled to trigger this soundness issue.
Publish Date: 2024-11-03
URL: WS-2023-0027
CVSS 3 Score Details (9.8)
Base Score Metrics: - Exploitability Metrics: - Attack Vector: Network - Attack Complexity: Low - Privileges Required: None - User Interaction: None - Scope: Unchanged - Impact Metrics: - Confidentiality Impact: High - Integrity Impact: High - Availability Impact: High
For more information on CVSS3 Scores, click here.Suggested Fix
Type: Upgrade version
Origin: https://rustsec.org/advisories/RUSTSEC-2023-0005.html
Release Date: 2023-02-02
Fix Resolution: tokio - 1.18.5,1.20.4,1.24.2
Step up your Open Source Security Game with Mend here