Releases40
Frequency2 months 1 week
Last Release
Downloads239M
Versatile QUIC transport protocol implementation

CVE History

CVEAffectedPublishedCVSS v3CVSS v2
>= 0.11.0, < 0.11.47.5 HIGH

Quinn is a pure-Rust, async-compatible implementation of the IETF QUIC transport protocol. As of quinn-proto 0.11, it is possible for a server to `accept()`, `retry()`, `refuse()`, or `ignore()` an `Incoming` connection. However, calling `retry()` on an unvalidated connection exposes the server to a likely panic in the following situations: 1. Calling `refuse` or `ignore` on the resulting validated connection, if a duplicate initial packet is received. This issue can go undetected until a server's `refuse()`/`ignore()` code path is exercised, such as to stop a denial of service attack. 2. Accepting when the initial packet for the resulting validated connection fails to decrypt or exhausts connection IDs, if a similar initial packet that successfully decrypts and doesn't exhaust connection IDs is received. This issue can go undetected if clients are well-behaved. The former situation was observed in a real application, while the latter is only theoretical.

>= 0.10.0, < 0.10.5, < 0.9.57.5 HIGH

quinn-proto is a state machine for the QUIC transport protocol. Prior to versions 0.9.5 and 0.10.5, receiving unknown QUIC frames in a QUIC packet could result in a panic. The problem has been fixed in 0.9.5 and 0.10.5 maintenance releases.

>= 0.6.0, < 0.6.2, < 0.5.4, >= 0.0.0-0, < 0.5.4, >= 0.6.0-0, < 0.6.2, >= 0.7.0-0, < 0.7.07.5 HIGH5 MEDIUM

An issue was discovered in the quinn crate before 0.7.0 for Rust. It may have invalid memory access for certain versions of the standard library because it relies on a direct cast of std::net::SocketAddrV4 and std::net::SocketAddrV6 data structures.