GitHub Advisoryadvisory · crates.io

GHSA-7rrj-xr53-82p7 Tokio reject_remote_clients configuration may get dropped when creating a Windows named pipe

MEDIUM Published 2023-01-06 Modified 2023-01-06 Official page ↗
Aliases
CVE-2023-22466
Ecosystem
crates.io
Packages
tokio
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L
Weaknesses
CWE-665
Reviewed
2023-01-06

Affected packages

• crates.io tokio: >= 1.7.0, < 1.18.4 → fixed in 1.18.4 • crates.io tokio: >= 1.19.0, < 1.20.3 → fixed in 1.20.3 • crates.io tokio: >= 1.21.0, < 1.23.1 → fixed in 1.23.1

Description

Impact When configuring a Windows named pipe server, setting `pipe_mode` will reset `reject_remote_clients` to `false`. If the application has previously configured `reject_remote_clients` to `true`, this effectively undoes the configuration. This also applies if `reject_remote_clients` is not explicitly set as this is the default configuration and is cleared by calling `pipe_mode`. Remote clients may only access the named pipe if the named pipe's associated path is accessible via a publically shared folder (SMB). Patches The following versions have been patched: • 1.23.1 • 1.20.3 • 1.18.4 The fix will also be present in all releases starting from version 1.24.0. Named pipes were introduced to Tokio in version 1.7.0, so releases older than 1.7.0 are not affected. Workarounds Ensure that `pipe_mode` is set first after initializing a `ServerOptions`. For example: ```rust let mut opts = ServerOptions::new(); opts.pipe_mode(PipeMode::Message); opts.reject_remote_clients(true); ``` References https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea#pipe_reject_remote_clients

Related

Alias · CVE (1)

  • CVE-2023-22466 Tokio is a runtime for writing applications with Rust. vulnerability

Weakness · CWE (1)

  • CWE-665 Improper Initialization weakness

References