This project might be open to known security vulnerabilities, which can be prevented by tightening the version range of affected dependencies. Find detailed information at the bottom.

Crate async-tungstenite

Dependencies

(18 total, 8 outdated, 3 possibly insecure)

CrateRequiredLatestStatus
 async-std^1.01.13.0up to date
 futures-io^0.30.3.31up to date
 futures-util^0.30.3.31up to date
 gio^0.140.20.5out of date
 glib^0.140.20.5out of date
 log^0.40.4.22up to date
 openssl ⚠️^0.100.10.68maybe insecure
 pin-project-lite^0.20.2.15up to date
 async-native-tls^0.3.00.5.0out of date
 async-tls^0.110.13.0out of date
 native-tls^0.20.2.12up to date
 tokio-native-tls^0.30.3.1up to date
 tokio-openssl^0.60.6.5up to date
 tokio-rustls^0.230.26.0out of date
 rustls-native-certs^0.60.8.0out of date
 tokio ⚠️^1.01.41.0maybe insecure
 tungstenite ⚠️^0.16.00.24.0out of date
 webpki-roots^0.220.26.6out of date

Dev dependencies

(5 total, 1 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 async-std^1.01.13.0up to date
 env_logger^0.90.11.5out of date
 futures^0.30.3.31up to date
 tokio ⚠️^1.01.41.0maybe insecure
 url^2.0.02.5.3up to date

Security Vulnerabilities

tokio: reject_remote_clients Configuration corruption

RUSTSEC-2023-0001

On Windows, configuring a named pipe server with pipe_mode will force ServerOptions::reject_remote_clients as false.

This drops any intended explicit configuration for the reject_remote_clients that may have been set as true previously.

The default setting of reject_remote_clients is normally true meaning the default is also overridden as false.

Workarounds

Ensure that pipe_mode is set first after initializing a ServerOptions. For example:

let mut opts = ServerOptions::new();
opts.pipe_mode(PipeMode::Message);
opts.reject_remote_clients(true);

tungstenite: Tungstenite allows remote attackers to cause a denial of service

RUSTSEC-2023-0065

The Tungstenite crate through 0.20.0 for Rust allows remote attackers to cause a denial of service (minutes of CPU consumption) via an excessive length of an HTTP header in a client handshake. The length affects both how many times a parse is attempted (e.g., thousands of times) and the average amount of data for each parse attempt (e.g., millions of bytes).

openssl: `MemBio::get_buf` has undefined behavior with empty buffers

RUSTSEC-2024-0357

Previously, MemBio::get_buf called slice::from_raw_parts with a null-pointer, which violates the functions invariants, leading to undefined behavior. In debug builds this would produce an assertion failure. This is now fixed.