{"id":"CVE-2024-45311","state":"PUBLISHED","title":"Denial of service in quinn-proto when using `Endpoint::retry()`","description":"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.","publishedAt":"2024-09-02T16:45:39.465Z","updatedAt":"2024-09-03T14:04:46.433Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"GitHub_M"},"assigner":"GitHub_M","products":["quinn-rs quinn"],"affected":[{"vendor":"quinn-rs","product":"quinn","versions":[{"version":">= 0.11.0, < 0.11.7","status":"affected"}]}],"references":["https://github.com/quinn-rs/quinn/security/advisories/GHSA-vr26-jcq5-fjj8","https://github.com/quinn-rs/quinn/commit/e01609ccd8738bd438d86fa7185a0f85598cb58f","https://github.com/quinn-rs/quinn/blob/bb02a12a8435a7732a1d762783eeacbb7e50418e/quinn-proto/src/endpoint.rs#L213"],"weaknesses":["CWE-670"],"ingestedAt":"2026-10-29T20:07:47.831Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/45xxx/CVE-2024-45311.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-45311","state":"PUBLISHED","datePublished":"2024-09-02T16:45:39.465Z","dateUpdated":"2024-09-03T14:04:46.433Z","assignerShortName":"GitHub_M","assignerOrgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateReserved":"2024-08-26T18:25:35.444Z"},"containers":{"cna":{"title":"Denial of service in quinn-proto when using `Endpoint::retry()`","descriptions":[{"lang":"en","value":"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."}],"affected":[{"vendor":"quinn-rs","product":"quinn","versions":[{"version":">= 0.11.0, < 0.11.7","status":"affected"}]}],"references":[{"url":"https://github.com/quinn-rs/quinn/security/advisories/GHSA-vr26-jcq5-fjj8","name":"https://github.com/quinn-rs/quinn/security/advisories/GHSA-vr26-jcq5-fjj8","tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/quinn-rs/quinn/commit/e01609ccd8738bd438d86fa7185a0f85598cb58f","name":"https://github.com/quinn-rs/quinn/commit/e01609ccd8738bd438d86fa7185a0f85598cb58f","tags":["x_refsource_MISC"]},{"url":"https://github.com/quinn-rs/quinn/blob/bb02a12a8435a7732a1d762783eeacbb7e50418e/quinn-proto/src/endpoint.rs#L213","name":"https://github.com/quinn-rs/quinn/blob/bb02a12a8435a7732a1d762783eeacbb7e50418e/quinn-proto/src/endpoint.rs#L213","tags":["x_refsource_MISC"]}],"metrics":[{"cvssV3_1":{"attackComplexity":"LOW","attackVector":"NETWORK","availabilityImpact":"HIGH","baseScore":7.5,"baseSeverity":"HIGH","confidentialityImpact":"NONE","integrityImpact":"NONE","privilegesRequired":"NONE","scope":"UNCHANGED","userInteraction":"NONE","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","version":"3.1"}}],"problemTypes":[{"descriptions":[{"cweId":"CWE-670","lang":"en","description":"CWE-670: Always-Incorrect Control Flow Implementation","type":"CWE"}]}],"providerMetadata":{"shortName":"GitHub_M","orgId":"a0819718-46f1-4df5-94e2-005712e83aaa","dateUpdated":"2024-09-02T16:45:39.465Z"},"source":{"advisory":"GHSA-vr26-jcq5-fjj8","discovery":"UNKNOWN"}},"adp":[{"title":"CISA ADP Vulnrichment","affected":[{"vendor":"quinn_project","product":"quinn","defaultStatus":"unknown","versions":[{"version":"0.11.0","status":"affected","lessThan":"0.11.7","versionType":"custom"}],"cpes":["cpe:2.3:a:quinn_project:quinn:*:*:*:*:*:rust:*:*"]}],"metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-09-03T14:01:33.229542Z","id":"CVE-2024-45311","options":[{"Exploitation":"poc"},{"Automatable":"yes"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-09-03T14:04:46.433Z"}}]}}}