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 sccache

Dependencies

(64 total, 16 outdated, 3 possibly insecure)

CrateRequiredLatestStatus
 anyhow^1.01.0.97up to date
 ar^0.90.9.0up to date
 async-trait^0.10.1.87up to date
 base64^0.210.22.1out of date
 bincode^12.0.0out of date
 blake3^11.6.1up to date
 byteorder^1.51.5.0up to date
 bytes^11.10.1up to date
 chrono ⚠️^0.40.4.40maybe insecure
 clap^4.5.134.5.31up to date
 directories^5.0.16.0.0out of date
 encoding_rs^0.80.8.35up to date
 env_logger^0.100.11.6out of date
 filetime^0.20.2.25up to date
 flate2^1.01.1.0up to date
 fs-err^2.113.1.0out of date
 futures^0.30.3.31up to date
 gzp^0.11.31.0.1out of date
 http^1.01.2.0up to date
 http-body-util^0.10.1.2up to date
 hyper^1.11.6.0up to date
 hyper-util^0.1.30.1.10up to date
 itertools^0.120.14.0out of date
 jobserver^0.10.1.32up to date
 jsonwebtoken^99.3.1up to date
 libc^0.2.1530.2.170up to date
 linked-hash-map^0.50.5.6up to date
 log^0.40.4.26up to date
 memchr^22.7.4up to date
 memmap2^0.9.40.9.5up to date
 mime^0.30.3.17up to date
 number_prefix^0.40.4.0up to date
 object^0.320.36.7out of date
 once_cell^1.191.20.3up to date
 opendal^0.52.00.52.0up to date
 openssl ⚠️^0.10.640.10.71maybe insecure
 rand^0.8.40.9.0out of date
 regex^1.10.31.11.1up to date
 reqsign^0.16.00.16.1up to date
 reqwest^0.120.12.12up to date
 retry^22.0.0up to date
 semver^1.01.0.26up to date
 serde^1.01.0.218up to date
 serde_json^1.01.0.140up to date
 sha2^0.10.80.10.8up to date
 shlex^1.3.01.3.0up to date
 strip-ansi-escapes^0.20.2.1up to date
 tar^0.4.400.4.44up to date
 tempfile^33.18.0up to date
 tokio ⚠️^11.43.0maybe insecure
 tokio-serde^0.80.9.0out of date
 tokio-util^0.70.7.13up to date
 toml^0.80.8.20up to date
 tower^0.40.5.2out of date
 url^22.5.4up to date
 uuid^1.91.15.1up to date
 walkdir^22.5.0up to date
 which^67.0.2out of date
 zip^0.62.2.3out of date
 zstd^0.130.13.3up to date
 nix^0.28.00.29.0out of date
 rouille^3.63.6.2up to date
 syslog^67.0.0out of date
 version-compare^0.1.10.2.0out of date

Dev dependencies

(10 total, 2 outdated)

CrateRequiredLatestStatus
 assert_cmd^2.0.132.0.16up to date
 cc^1.01.2.16up to date
 chrono^0.4.400.4.40up to date
 filetime^0.20.2.25up to date
 itertools^0.120.14.0out of date
 predicates=3.1.03.1.3out of date
 serial_test^3.13.2.0up to date
 temp-env^0.3.60.3.6up to date
 test-case^3.3.13.3.1up to date
 thirtyfour_sync^0.270.27.1up to date

Crate randomize_readdir

Dependencies

(6 total, 2 outdated)

CrateRequiredLatestStatus
 ctor^0.20.4.0out of date
 libc^0.2.990.2.170up to date
 log^0.40.4.26up to date
 once_cell^11.20.3up to date
 rand^0.80.9.0out of date
 simplelog^0.120.12.2up to date

Security Vulnerabilities

chrono: Potential segfault in `localtime_r` invocations

RUSTSEC-2020-0159

Impact

Unix-like operating systems may segfault due to dereferencing a dangling pointer in specific circumstances. This requires an environment variable to be set in a different thread than the affected functions. This may occur without the user's knowledge, notably in a third-party library.

Workarounds

No workarounds are known.

References

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

openssl: ssl::select_next_proto use after free

RUSTSEC-2025-0004

In openssl versions before 0.10.70, ssl::select_next_proto can return a slice pointing into the server argument's buffer but with a lifetime bound to the client argument. In situations where the server buffer's lifetime is shorter than the client buffer's, this can cause a use after free. This could cause the server to crash or to return arbitrary memory contents to the client.

openssl 0.10.70 fixes the signature of ssl::select_next_proto to properly constrain the output buffer's lifetime to that of both input buffers.

In standard usage of ssl::select_next_proto in the callback passed to SslContextBuilder::set_alpn_select_callback, code is only affected if the server buffer is constructed within the callback. For example:

Not vulnerable - the server buffer has a 'static lifetime:

builder.set_alpn_select_callback(|_, client_protos| {
    ssl::select_next_proto(b"\x02h2", client_protos).ok_or_else(AlpnError::NOACK)
});

Not vulnerable - the server buffer outlives the handshake:

let server_protos = b"\x02h2".to_vec();
builder.set_alpn_select_callback(|_, client_protos| {
    ssl::select_next_proto(&server_protos, client_protos).ok_or_else(AlpnError::NOACK)
});

Vulnerable - the server buffer is freed when the callback returns:

builder.set_alpn_select_callback(|_, client_protos| {
    let server_protos = b"\x02h2".to_vec();
    ssl::select_next_proto(&server_protos, client_protos).ok_or_else(AlpnError::NOACK)
});