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 librespot-playback

Dependencies

(28 total, 11 outdated, 2 possibly insecure)

CrateRequiredLatestStatus
 alsa^0.60.9.0out of date
 byteorder^1.41.5.0up to date
 cpal^0.130.15.3out of date
 futures-executor^0.30.3.30up to date
 futures-util^0.30.3.30up to date
 glib^0.150.19.6out of date
 gstreamer^0.180.22.4out of date
 gstreamer-app^0.180.22.0out of date
 gstreamer-audio^0.180.22.4out of date
 jack^0.100.11.4out of date
 lewton^0.100.10.2up to date
 libpulse-binding^22.28.1up to date
 libpulse-simple-binding^22.28.1up to date
 librespot-audio^0.4.20.4.2up to date
 librespot-core^0.4.20.4.2up to date
 librespot-metadata^0.4.20.4.2up to date
 log^0.40.4.21up to date
 ogg^0.80.9.1out of date
 parking_lot^0.120.12.2up to date
 portaudio-rs ⚠️^0.30.3.2maybe insecure
 rand^0.80.8.5up to date
 rand_distr^0.40.4.3up to date
 rodio^0.150.18.0out of date
 sdl2^0.350.36.0out of date
 shell-words^1.0.01.1.0up to date
 thiserror^11.0.61up to date
 tokio ⚠️^11.37.0maybe insecure
 zerocopy^0.60.7.34out of date

Security Vulnerabilities

portaudio-rs: Stream callback function is not unwind safe

RUSTSEC-2019-0022

Affected versions of this crate is not panic safe within callback functions stream_callback and stream_finished_callback.

The call to user-provided closure might panic before a mem::forget call, which then causes a use after free that grants attacker to control the callback function pointer.

This allows an attacker to construct an arbitrary code execution .

The flaw was reported by Phosphorus15.

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);