ghsa-7rrj-xr53-82p7
Vulnerability from github
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
{ "affected": [ { "package": { "ecosystem": "crates.io", "name": "tokio" }, "ranges": [ { "events": [ { "introduced": "1.7.0" }, { "fixed": "1.18.4" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "crates.io", "name": "tokio" }, "ranges": [ { "events": [ { "introduced": "1.19.0" }, { "fixed": "1.20.3" } ], "type": "ECOSYSTEM" } ] }, { "package": { "ecosystem": "crates.io", "name": "tokio" }, "ranges": [ { "events": [ { "introduced": "1.21.0" }, { "fixed": "1.23.1" } ], "type": "ECOSYSTEM" } ] } ], "aliases": [ "CVE-2023-22466" ], "database_specific": { "cwe_ids": [ "CWE-665" ], "github_reviewed": true, "github_reviewed_at": "2023-01-06T21:40:58Z", "nvd_published_at": "2023-01-04T22:15:00Z", "severity": "MODERATE" }, "details": "### Impact\n\nWhen 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`.\n\nRemote clients may only access the named pipe if the named pipe\u0027s associated path is accessible via a publically shared folder (SMB).\n\n### Patches\n\nThe following versions have been patched:\n* 1.23.1\n* 1.20.3\n* 1.18.4\n\nThe fix will also be present in all releases starting from version 1.24.0.\n\nNamed pipes were introduced to Tokio in version 1.7.0, so releases older than 1.7.0 are not affected.\n\n### Workarounds\n\nEnsure that `pipe_mode` is set **first** after initializing a `ServerOptions`. For example:\n\n```rust\nlet mut opts = ServerOptions::new();\nopts.pipe_mode(PipeMode::Message);\nopts.reject_remote_clients(true);\n```\n\n### References\n\nhttps://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea#pipe_reject_remote_clients\n", "id": "GHSA-7rrj-xr53-82p7", "modified": "2023-01-06T21:40:58Z", "published": "2023-01-06T21:40:58Z", "references": [ { "type": "WEB", "url": "https://github.com/tokio-rs/tokio/security/advisories/GHSA-7rrj-xr53-82p7" }, { "type": "ADVISORY", "url": "https://nvd.nist.gov/vuln/detail/CVE-2023-22466" }, { "type": "WEB", "url": "https://github.com/tokio-rs/tokio/pull/5336" }, { "type": "PACKAGE", "url": "https://github.com/tokio-rs/tokio" }, { "type": "WEB", "url": "https://github.com/tokio-rs/tokio/releases/tag/tokio-1.23.1" }, { "type": "WEB", "url": "https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-createnamedpipea#pipe_reject_remote_clients" }, { "type": "WEB", "url": "https://rustsec.org/advisories/RUSTSEC-2023-0001.html" } ], "schema_version": "1.4.0", "severity": [ { "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:L", "type": "CVSS_V3" } ], "summary": "Tokio reject_remote_clients configuration may get dropped when creating a Windows named pipe" }
Sightings
Author | Source | Type | Date |
---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
- Confirmed: The vulnerability is confirmed from an analyst perspective.
- Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
- Patched: This vulnerability was successfully patched by the user reporting the sighting.
- Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
- Not confirmed: The user expresses doubt about the veracity of the vulnerability.
- Not patched: This vulnerability was not successfully patched by the user reporting the sighting.