This project contains known security vulnerabilities. Find detailed information at the bottom.

Crate libp2p-quic

Dependencies

(14 total, 6 outdated, 2 insecure)

CrateRequiredLatestStatus
 async-std^1.12.01.13.2up to date
 bytes^1.2.11.12.1up to date
 futures^0.3.150.3.34up to date
 futures-timer^3.0.23.0.4up to date
 if-watch^3.0.03.2.2up to date
 libp2p-core^0.38.00.44.0out of date
 libp2p-tls^0.1.0-alpha0.7.0out of date
 log^0.40.4.34up to date
 parking_lot^0.12.00.12.5up to date
 quinn-proto ⚠️^0.9.00.11.18insecure
 rand^0.8.50.10.3out of date
 rustls ⚠️^0.20.20.23.45insecure
 thiserror^1.0.262.0.20out of date
 tokio^1.21.11.53.1up to date

Dev dependencies

(4 total, 1 outdated)

CrateRequiredLatestStatus
 async-std^1.12.01.13.2up to date
 env_logger^0.9.00.11.11out of date
 quickcheck^11.1.0up to date
 tokio^1.21.11.53.1up to date

Security Vulnerabilities

rustls: `rustls::ConnectionCommon::complete_io` could fall into an infinite loop based on network input

RUSTSEC-2024-0336

If a close_notify alert is received during a handshake, complete_io does not terminate.

Callers which do not call complete_io are not affected.

rustls-tokio and rustls-ffi do not call complete_io and are not affected.

rustls::Stream and rustls::StreamOwned types use complete_io and are affected.

quinn-proto: Denial of service in Quinn endpoints

RUSTSEC-2026-0037

Receiving QUIC transport parameters containing invalid values could lead to a panic.

Unfortunately the maintainers did not properly assess usage of unwrap() calls in the transport parameters parsing code, and we did not have sufficient fuzzing coverage to find this issue. We have since added a fuzzing target to cover this code path.

quinn-proto: Remote memory exhaustion in quinn-proto from unbounded out-of-order stream reassembly

RUSTSEC-2026-0185

The Assembler component that assembles unordered stream fragments into consecutive chunks of the stream incurs some overhead for non-contiguous fragments. Readers that read from a RecvStream in order (through an AsyncRead impl for example) will be sensitive to peers that send fragments while leaving out early parts of the stream, and in particular, fragments with many gaps (because these cannot be defragmented). In such a scenario, the receiving connection suffers from high buffer overhead, enabling memory exhaustion.