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 cssparser

Dependencies

(9 total, 4 outdated, 1 possibly insecure)

CrateRequiredLatestStatus
 cssparser-macros^0.3.30.6.1out of date
 dtoa-short^0.30.3.4up to date
 heapsize>=0.3, <0.50.4.2up to date
 itoa^0.41.0.11out of date
 matches^0.10.1.10up to date
 phf^0.70.11.2out of date
 procedural-masquerade^0.10.1.7up to date
 serde^1.01.0.201up to date
 smallvec ⚠️^0.61.13.2out of date

Dev dependencies

(3 total, 1 insecure)

CrateRequiredLatestStatus
 difference^2.02.0.0up to date
 encoding_rs^0.80.8.34up to date
 rustc-serialize ⚠️^0.30.3.25insecure

Security Vulnerabilities

smallvec: Buffer overflow in SmallVec::insert_many

RUSTSEC-2021-0003

A bug in the SmallVec::insert_many method caused it to allocate a buffer that was smaller than needed. It then wrote past the end of the buffer, causing a buffer overflow and memory corruption on the heap.

This bug was only triggered if the iterator passed to insert_many yielded more items than the lower bound returned from its size_hint method.

The flaw was corrected in smallvec 0.6.14 and 1.6.1, by ensuring that additional space is always reserved for each item inserted. The fix also simplified the implementation of insert_many to use less unsafe code, so it is easier to verify its correctness.

Thank you to Yechan Bae (@Qwaz) and the Rust group at Georgia Tech’s SSLab for finding and reporting this bug.

rustc-serialize: Stack overflow in rustc_serialize when parsing deeply nested JSON

RUSTSEC-2022-0004

When parsing JSON using json::Json::from_str, there is no limit to the depth of the stack, therefore deeply nested objects can cause a stack overflow, which aborts the process.

Example code that triggers the vulnerability is

fn main() {
    let _ = rustc_serialize::json::Json::from_str(&"[0,[".repeat(10000));
}

serde is recommended as a replacement to rustc_serialize.