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 raspberry-web

Dependencies

(16 total, 9 outdated, 2 possibly insecure)

CrateRequiredLatestStatus
 actix^0.7.90.13.3out of date
 actix-web^0.7.194.5.1out of date
 chrono ⚠️^0.4.60.4.38maybe insecure
 clap^2.33.04.5.4out of date
 config^0.90.14.0out of date
 diesel ⚠️^1.4.22.1.6out of date
 dotenv^0.13.00.15.0out of date
 env_logger^0.6.10.11.3out of date
 futures^0.10.3.30out of date
 log^0.4.60.4.21up to date
 parking_lot^0.7.10.12.2out of date
 r2d2^0.8.40.8.10up to date
 r2d2-diesel^1.0.01.0.0up to date
 serde^1.0.891.0.200up to date
 serde_derive^1.0.901.0.200up to date
 serde_json^1.0.391.0.116up to date

Dev dependencies

(1 total, 1 outdated)

CrateRequiredLatestStatus
 diesel_migrations^1.3.02.1.0out of 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

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.