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 rusttype

Dependencies

(6 total, 4 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 approx^0.30.5.1out of date
 arrayvec^0.40.7.4out of date
 linked-hash-map^0.50.5.6up to date
 ordered-float ⚠️^0.54.2.0out of date
 rustc-hash^11.1.0up to date
 stb_truetype^0.2.20.3.1out of date

Dev dependencies

(5 total, 3 outdated, 2 possibly insecure)

CrateRequiredLatestStatus
 blake2 ⚠️^0.70.10.6out of date
 glium^0.220.34.0out of date
 image ⚠️^0.190.25.0out of date
 lazy_static^11.4.0up to date
 unicode-normalization^0.10.1.23up to date

Security Vulnerabilities

image: Flaw in interface may drop uninitialized instance of arbitrary types

RUSTSEC-2019-0014

Affected versions of this crate would call Vec::set_len on an uninitialized vector with user-provided type parameter, in an interface of the HDR image format decoder. They would then also call other code that could panic before initializing all instances.

This could run Drop implementations on uninitialized types, equivalent to use-after-free, and allow an attacker arbitrary code execution.

Two different fixes were applied. It is possible to conserve the interface by ensuring proper initialization before calling Vec::set_len. Drop is no longer called in case of panic, though.

Starting from version 0.22, a breaking change to the interface requires callers to pre-allocate the output buffer and pass a mutable slice instead, avoiding all unsafe code.

blake2: HMAC-BLAKE2 algorithms compute incorrect results

RUSTSEC-2019-0019

When used in conjunction with the Hash-based Message Authentication Code (HMAC), the BLAKE2b and BLAKE2s implementations in blake2 crate versions prior to v0.8.1 used an incorrect block size (32-bytes instead of 64-bytes for BLAKE2s, and 64-bytes instead of 128-bytes for BLAKE2b), causing them to miscompute the MacResult.

The v0.8.1 release of the blake2 crate uses the correct block sizes.

Note that this advisory only impacts usage of BLAKE2 with HMAC, and does not impact Digest functionality.

ordered-float: ordered_float:NotNan may contain NaN after panic in assignment operators

RUSTSEC-2020-0082

After using an assignment operators such as NotNan::add_assign, NotNan::mul_assign, etc., it was possible for the resulting NotNan value to contain a NaN. This could cause undefined behavior in safe code, because the safe NotNan::cmp method contains internal unsafe code that assumes the value is never NaN. (It could also cause undefined behavior in third-party unsafe code that makes the same assumption, as well as logic errors in safe code.)

This was mitigated starting in version 0.4.0, by panicking if the assigned value is NaN. However, in affected versions from 0.4.0 onward, code that uses the NotNan value during unwinding, or that continues after catching the panic, could still observe the invalid value and trigger undefined behavior.

The flaw is fully corrected in versions 1.1.1 and 2.0.1, by ensuring that the assignment operators panic without modifying the operand, if the result would be NaN.