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

(26 total, 7 outdated, 2 possibly insecure)

CrateRequiredLatestStatus
 alsa^0.9.00.9.1up to date
 cpal^0.15.10.16.0out of date
 futures-util^0.30.3.31up to date
 glib^0.20.30.20.12up to date
 gstreamer^0.23.10.23.7up to date
 gstreamer-app^0.23.00.23.5up to date
 gstreamer-audio^0.23.00.23.6up to date
 jack^0.110.13.3out of date
 libpulse-binding^22.30.1up to date
 libpulse-simple-binding^22.29.0up to date
 librespot-audio^0.6.00.6.0up to date
 librespot-core^0.6.00.6.0up to date
 librespot-metadata^0.6.00.6.0up to date
 log^0.40.4.27up to date
 ogg^0.90.9.2up to date
 parking_lot^0.120.12.4up to date
 portaudio-rs ⚠️^0.30.3.2maybe insecure
 rand^0.80.9.1out of date
 rand_distr^0.40.5.1out of date
 rodio^0.19.00.20.1out of date
 sdl2^0.370.37.0up to date
 shell-words^1.11.1.0up to date
 symphonia^0.50.5.4up to date
 thiserror^12.0.12out of date
 tokio ⚠️^11.46.1maybe insecure
 zerocopy^0.7.320.8.26out 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);