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 nihctfplat

Dependencies

(29 total, 18 outdated, 5 possibly insecure)

CrateRequiredLatestStatus
 antidote^1.0.01.0.0up to date
 chrono ⚠️^0.4.60.4.38maybe insecure
 chrono-humanize^0.0.110.2.3out of date
 diesel ⚠️^1.4.12.1.6out of date
 diesel_migrations^1.4.02.1.0out of date
 dotenv^0.13.00.15.0out of date
 either^1.5.01.11.0up to date
 failure^0.1.50.1.8up to date
 fern^0.5.70.6.2out of date
 futures^0.1.250.3.30out of date
 hostname^0.1.50.4.0out of date
 jsonwebtoken^5.0.19.3.0out of date
 lazy_static^1.2.01.4.0up to date
 lettre ⚠️^0.8.30.11.7out of date
 lettre_email^0.8.30.9.4out of date
 log^0.4.60.4.21up to date
 maplit^1.0.11.0.2up to date
 native-tls^0.1.50.2.11out of date
 packer^0.3.10.5.7out of date
 serde^1.0.851.0.198up to date
 serde_derive^1.0.851.0.198up to date
 serde_json^1.0.371.0.116up to date
 structopt^0.2.140.3.26out of date
 syslog^4.0.16.1.1out of date
 tera^0.11.201.19.1out of date
 tokio ⚠️^0.1.151.37.0out of date
 tokio-threadpool^0.1.110.1.18up to date
 uuid^0.6.51.8.0out of date
 warp ⚠️^0.1.120.3.7out 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.

lettre: SMTP command injection in body

RUSTSEC-2021-0069

Affected versions of lettre allowed SMTP command injection through an attacker's controlled message body. The module for escaping lines starting with a period wouldn't catch a period that was placed after a double CRLF sequence, allowing the attacker to end the current message and write arbitrary SMTP commands after it.

The flaw is fixed by correctly handling consecutive CRLF sequences.

tokio: Data race when sending and receiving after closing a `oneshot` channel

RUSTSEC-2021-0124

If a tokio::sync::oneshot channel is closed (via the oneshot::Receiver::close method), a data race may occur if the oneshot::Sender::send method is called while the corresponding oneshot::Receiver is awaited or calling try_recv.

When these methods are called concurrently on a closed channel, the two halves of the channel can concurrently access a shared memory location, resulting in a data race. This has been observed to cause memory corruption.

Note that the race only occurs when both halves of the channel are used after the Receiver half has called close. Code where close is not used, or where the Receiver is not awaited and try_recv is not called after calling close, is not affected.

See tokio#4225 for more details.

warp: Improper validation of Windows paths could lead to directory traversal attack

RUSTSEC-2022-0082

Path resolution in warp::filters::fs::dir didn't correctly validate Windows paths meaning paths like /foo/bar/c:/windows/web/screen/img101.png would be allowed and respond with the contents of c:/windows/web/screen/img101.png. Thus users could potentially read files anywhere on the filesystem.

This only impacts Windows. Linux and other unix likes are not impacted by this.