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 rust_decimal

Dependencies

(10 total, 2 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 arbitrary^1.01.3.2up to date
 arrayvec^0.50.7.4out of date
 byteorder^1.31.5.0up to date
 bytes^1.01.6.0up to date
 diesel ⚠️^1.42.1.5out of date
 num-traits^0.20.2.18up to date
 postgres^0.190.19.7up to date
 serde^1.01.0.197up to date
 serde_json^1.01.0.115up to date
 tokio-postgres^0.70.7.10up to date

Dev dependencies

(8 total, 1 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 bincode^1.31.3.3up to date
 bytes^1.01.6.0up to date
 criterion^0.30.5.1out of date
 csv^11.3.0up to date
 futures^0.30.3.30up to date
 serde_derive^1.01.0.197up to date
 serde_json^1.01.0.115up to date
 tokio ⚠️^1.01.36.0maybe insecure

Security Vulnerabilities

diesel: Fix a use-after-free bug in diesels Sqlite backend

RUSTSEC-2021-0037

We've misused sqlite3_column_name. The SQLite documentation states that the following:

The returned string pointer is valid until either the prepared statement is destroyed by sqlite3_finalize() or until the statement is automatically reprepared by the first call to sqlite3_step() for a particular run or until the next call to sqlite3_column_name() or sqlite3_column_name16() on the same column.

As part of our query_by_name infrastructure we've first received all field names for the prepared statement and stored them as string slices for later use. After that we called sqlite3_step() for the first time, which invalids the pointer and therefore the stored string slice.

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