{"id":"CVE-2024-45311","summary":"Denial of service in quinn-proto when using `Endpoint::retry()`","details":"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.","aliases":["GHSA-vr26-jcq5-fjj8","RUSTSEC-2024-0373"],"modified":"2026-07-15T01:49:11.179042706Z","published":"2024-09-02T16:45:39.465Z","related":["CGA-r235-v2qx-ch34"],"database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-670"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/45xxx/CVE-2024-45311.json"},"references":[{"type":"WEB","url":"https://github.com/quinn-rs/quinn/blob/bb02a12a8435a7732a1d762783eeacbb7e50418e/quinn-proto/src/endpoint.rs#L213"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2024/45xxx/CVE-2024-45311.json"},{"type":"ADVISORY","url":"https://github.com/quinn-rs/quinn/security/advisories/GHSA-vr26-jcq5-fjj8"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2024-45311"},{"type":"FIX","url":"https://github.com/quinn-rs/quinn/commit/e01609ccd8738bd438d86fa7185a0f85598cb58f"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/quinn-rs/quinn","events":[{"introduced":"0e9a19665a8afc26d3ad66a6f7e8b361960d235b"},{"fixed":"b3f149386f978195634f1aec1d48cd1b5db5df20"},{"fixed":"e01609ccd8738bd438d86fa7185a0f85598cb58f"}],"database_specific":{"cpe":"cpe:2.3:a:quinn_project:quinn:*:*:*:*:*:rust:*:*","extracted_events":[{"introduced":"0.11.0"},{"fixed":"0.11.4"}],"source":["CPE_RANGE","REFERENCES"]}}],"versions":["quinn-proto-0.11.6","quinn-0.11.3","quinn-proto-0.11.5","quinn-proto-0.11.4","quinn-udp-0.5.4","quinn-udp-0.5.3","quinn-udp-0.5.2","quinn-proto-0.11.3","quinn-0.11.2","0.11.2","0.11.1","0.11.0"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2024-45311.json"}}],"schema_version":"1.7.5","severity":[{"type":"CVSS_V3","score":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H"}]}